From: =?UTF-8?q?Manuel=20Dur=C3=A1n=20Aguete?= 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(),