From: =?UTF-8?q?Manuel=20Dur=C3=A1n=20Aguete?= <manuel@aguete.org>
Date: Fri, 11 Mar 2016 18:13:17 +0100
Subject: [PATCH] Add refresh_token to access_token context
diff --git a/src/oauth2.erl b/src/oauth2.erl
index 9eb8d1d..4f4855b 100644
--- a/src/oauth2.erl
+++ b/src/oauth2.erl
@@ -246,10 +246,10 @@ issue_token_and_refresh(#a{resowner = undefined}, _Ctx) ->
issue_token_and_refresh( #a{client=Client, resowner=Owner, scope=Scope, ttl=TTL}
, Ctx0 ) ->
RTTL = oauth2_config:expiry_time(refresh_token),
- AccessCtx = build_context(Client,seconds_since_epoch(TTL),Owner,Scope),
RefreshCtx = build_context(Client,seconds_since_epoch(RTTL),Owner,Scope),
- AccessToken = ?TOKEN:generate(AccessCtx),
RefreshToken = ?TOKEN:generate(RefreshCtx),
+ AccessCtx = build_context(Client,seconds_since_epoch(TTL),Owner,Scope,RefreshToken),
+ AccessToken = ?TOKEN:generate(AccessCtx),
{ok, Ctx1} = ?BACKEND:associate_access_token( AccessToken
, AccessCtx
, Ctx0),
@@ -385,6 +385,9 @@ build_context(Client, ExpiryTime, ResOwner, Scope) ->
, {<<"expiry_time">>, ExpiryTime}
, {<<"scope">>, Scope} ].
+build_context(Client, ExpiryTime, ResOwner, Scope, RefreshToken) ->
+ [{<<"refresh_token">>, RefreshToken} | build_context(Client, ExpiryTime, ResOwner, Scope)].
+
-spec seconds_since_epoch(integer()) -> non_neg_integer().
seconds_since_epoch(Diff) ->
{Mega, Secs, _} = os:timestamp(),