@@ -175,49 +175,56 @@ func (m *Manager) GenerateAuthToken(rt oauth2.ResponseType, tgr *oauth2.TokenGen
175175 ti .SetRedirectURI (tgr .RedirectURI )
176176 ti .SetScope (tgr .Scope )
177177
178+ createAt := time .Now ()
178179 td := & oauth2.GenerateBasic {
179180 Client : cli ,
180181 UserID : tgr .UserID ,
181- CreateAt : time . Now () ,
182+ CreateAt : createAt ,
182183 TokenInfo : ti ,
184+ Request : tgr .Request ,
183185 }
184186 switch rt {
185187 case oauth2 .Code :
186- tv , terr := gen .Token (td )
187- if terr != nil {
188- err = terr
189- return
190- }
191- ti .SetCode (tv )
192188 codeExp := m .codeExp
193189 if codeExp == 0 {
194190 codeExp = DefaultCodeExp
195191 }
192+ ti .SetCodeCreateAt (createAt )
196193 ti .SetCodeExpiresIn (codeExp )
197- ti .SetCodeCreateAt (td .CreateAt )
198194 if exp := tgr .AccessTokenExp ; exp > 0 {
199195 ti .SetAccessExpiresIn (exp )
200196 }
201- case oauth2 .Token :
202- icfg := m .grantConfig (oauth2 .Implicit )
203- tv , rv , terr := tgen .Token (td , icfg .IsGenerateRefresh )
197+
198+ tv , terr := gen .Token (td )
204199 if terr != nil {
205200 err = terr
206201 return
207202 }
208- ti .SetAccess (tv )
209- ti . SetAccessCreateAt ( td . CreateAt )
203+ ti .SetCode (tv )
204+ case oauth2 . Token :
210205 // set access token expires
206+ icfg := m .grantConfig (oauth2 .Implicit )
211207 aexp := icfg .AccessTokenExp
212208 if exp := tgr .AccessTokenExp ; exp > 0 {
213209 aexp = exp
214210 }
211+ ti .SetAccessCreateAt (createAt )
215212 ti .SetAccessExpiresIn (aexp )
216213
214+ if icfg .IsGenerateRefresh {
215+ ti .SetRefreshCreateAt (createAt )
216+ ti .SetRefreshExpiresIn (icfg .RefreshTokenExp )
217+ }
218+
219+ tv , rv , terr := tgen .Token (td , icfg .IsGenerateRefresh )
220+ if terr != nil {
221+ err = terr
222+ return
223+ }
224+ ti .SetAccess (tv )
225+
217226 if rv != "" {
218227 ti .SetRefresh (rv )
219- ti .SetRefreshCreateAt (td .CreateAt )
220- ti .SetRefreshExpiresIn (icfg .RefreshTokenExp )
221228 }
222229 }
223230
@@ -298,31 +305,38 @@ func (m *Manager) GenerateAccessToken(gt oauth2.GrantType, tgr *oauth2.TokenGene
298305 ti .SetRedirectURI (tgr .RedirectURI )
299306 ti .SetScope (tgr .Scope )
300307
308+ createAt := time .Now ()
309+ ti .SetAccessCreateAt (createAt )
310+
311+ // set access token expires
312+ gcfg := m .grantConfig (gt )
313+ aexp := gcfg .AccessTokenExp
314+ if exp := tgr .AccessTokenExp ; exp > 0 {
315+ aexp = exp
316+ }
317+ ti .SetAccessExpiresIn (aexp )
318+ if gcfg .IsGenerateRefresh {
319+ ti .SetRefreshCreateAt (createAt )
320+ ti .SetRefreshExpiresIn (gcfg .RefreshTokenExp )
321+ }
322+
301323 td := & oauth2.GenerateBasic {
302324 Client : cli ,
303325 UserID : tgr .UserID ,
304- CreateAt : time . Now () ,
326+ CreateAt : createAt ,
305327 TokenInfo : ti ,
328+ Request : tgr .Request ,
306329 }
307- gcfg := m .grantConfig (gt )
308330
309331 av , rv , terr := gen .Token (td , gcfg .IsGenerateRefresh )
310332 if terr != nil {
311333 err = terr
312334 return
313335 }
314- ti .SetAccessCreateAt (td .CreateAt )
315336 ti .SetAccess (av )
316- // set access token expires
317- aexp := gcfg .AccessTokenExp
318- if exp := tgr .AccessTokenExp ; exp > 0 {
319- aexp = exp
320- }
321- ti .SetAccessExpiresIn (aexp )
337+
322338 if rv != "" {
323339 ti .SetRefresh (rv )
324- ti .SetRefreshCreateAt (td .CreateAt )
325- ti .SetRefreshExpiresIn (gcfg .RefreshTokenExp )
326340 }
327341
328342 err = stor .Create (ti )
@@ -362,6 +376,7 @@ func (m *Manager) RefreshAccessToken(tgr *oauth2.TokenGenerateRequest) (accessTo
362376 UserID : ti .GetUserID (),
363377 CreateAt : time .Now (),
364378 TokenInfo : ti ,
379+ Request : tgr .Request ,
365380 }
366381
367382 rcfg := DefaultRefreshTokenCfg
0 commit comments