Blob Blame History Raw
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(),