File tree 4 files changed +14
-2
lines changed
4 files changed +14
-2
lines changed Original file line number Diff line number Diff line change @@ -26,5 +26,6 @@ _testmain.go
26
26
# OSX
27
27
* .DS_Store
28
28
* .db
29
+ * .swp
29
30
/example /client /client
30
31
/example /server /server
Original file line number Diff line number Diff line change @@ -132,8 +132,8 @@ Copyright (c) 2016 Lyric
132
132
[ License-Image ] : https://img.shields.io/npm/l/express.svg
133
133
[ Build-Status-Url ] : https://travis-ci.org/go-oauth2/oauth2
134
134
[ Build-Status-Image ] : https://travis-ci.org/go-oauth2/oauth2.svg?branch=master
135
- [ Release-Url ] : https://github.com/go-oauth2/oauth2/releases/tag/v3.5.2
136
- [ Release-image ] : http://img.shields.io/badge/release-v3.5.2 -1eb0fc.svg
135
+ [ Release-Url ] : https://github.com/go-oauth2/oauth2/releases/tag/v3.5.3
136
+ [ Release-image ] : http://img.shields.io/badge/release-v3.5.3 -1eb0fc.svg
137
137
[ ReportCard-Url ] : https://goreportcard.com/report/gopkg.in/oauth2.v3
138
138
[ ReportCard-Image ] : https://goreportcard.com/badge/gopkg.in/oauth2.v3
139
139
[ GoDoc-Url ] : https://godoc.org/gopkg.in/oauth2.v3
Original file line number Diff line number Diff line change @@ -10,6 +10,8 @@ type Config struct {
10
10
RefreshTokenExp time.Duration
11
11
// whether to generate the refreshing token
12
12
IsGenerateRefresh bool
13
+ // whether to reset the refreshing expiration time
14
+ IsResetRefreshTime bool
13
15
}
14
16
15
17
// default configs
Original file line number Diff line number Diff line change @@ -341,28 +341,36 @@ func (m *Manager) RefreshAccessToken(tgr *oauth2.TokenGenerateRequest) (accessTo
341
341
err = errors .ErrInvalidClient
342
342
return
343
343
}
344
+
344
345
ti , err := m .LoadRefreshToken (tgr .Refresh )
345
346
if err != nil {
346
347
return
347
348
} else if ti .GetClientID () != tgr .ClientID {
348
349
err = errors .ErrInvalidRefreshToken
349
350
return
350
351
}
352
+
351
353
oldAccess , oldRefresh := ti .GetAccess (), ti .GetRefresh ()
352
354
_ , ierr := m .injector .Invoke (func (stor oauth2.TokenStore , gen oauth2.AccessGenerate ) {
353
355
td := & oauth2.GenerateBasic {
354
356
Client : cli ,
355
357
UserID : ti .GetUserID (),
356
358
CreateAt : time .Now (),
357
359
}
360
+
358
361
rcfg := m .grantConfig (oauth2 .Refreshing )
362
+
359
363
tv , rv , terr := gen .Token (td , rcfg .IsGenerateRefresh )
360
364
if terr != nil {
361
365
err = terr
362
366
return
363
367
}
368
+
364
369
ti .SetAccess (tv )
365
370
ti .SetAccessCreateAt (td .CreateAt )
371
+ if rcfg .IsResetRefreshTime {
372
+ ti .SetRefreshCreateAt (td .CreateAt )
373
+ }
366
374
if scope := tgr .Scope ; scope != "" {
367
375
ti .SetScope (scope )
368
376
}
@@ -373,6 +381,7 @@ func (m *Manager) RefreshAccessToken(tgr *oauth2.TokenGenerateRequest) (accessTo
373
381
err = verr
374
382
return
375
383
}
384
+
376
385
// remove the old access token
377
386
if verr := stor .RemoveByAccess (oldAccess ); verr != nil {
378
387
err = verr
You can’t perform that action at this time.
0 commit comments