Skip to content

Commit 8193204

Browse files
committed
support to reset refreshing time
1 parent fcc9ad9 commit 8193204

File tree

4 files changed

+14
-2
lines changed

4 files changed

+14
-2
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,6 @@ _testmain.go
2626
# OSX
2727
*.DS_Store
2828
*.db
29+
*.swp
2930
/example/client/client
3031
/example/server/server

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,8 @@ Copyright (c) 2016 Lyric
132132
[License-Image]: https://img.shields.io/npm/l/express.svg
133133
[Build-Status-Url]: https://travis-ci.org/go-oauth2/oauth2
134134
[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
137137
[ReportCard-Url]: https://goreportcard.com/report/gopkg.in/oauth2.v3
138138
[ReportCard-Image]: https://goreportcard.com/badge/gopkg.in/oauth2.v3
139139
[GoDoc-Url]: https://godoc.org/gopkg.in/oauth2.v3

manage/config.go

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ type Config struct {
1010
RefreshTokenExp time.Duration
1111
// whether to generate the refreshing token
1212
IsGenerateRefresh bool
13+
// whether to reset the refreshing expiration time
14+
IsResetRefreshTime bool
1315
}
1416

1517
// default configs

manage/manager.go

+9
Original file line numberDiff line numberDiff line change
@@ -341,28 +341,36 @@ func (m *Manager) RefreshAccessToken(tgr *oauth2.TokenGenerateRequest) (accessTo
341341
err = errors.ErrInvalidClient
342342
return
343343
}
344+
344345
ti, err := m.LoadRefreshToken(tgr.Refresh)
345346
if err != nil {
346347
return
347348
} else if ti.GetClientID() != tgr.ClientID {
348349
err = errors.ErrInvalidRefreshToken
349350
return
350351
}
352+
351353
oldAccess, oldRefresh := ti.GetAccess(), ti.GetRefresh()
352354
_, ierr := m.injector.Invoke(func(stor oauth2.TokenStore, gen oauth2.AccessGenerate) {
353355
td := &oauth2.GenerateBasic{
354356
Client: cli,
355357
UserID: ti.GetUserID(),
356358
CreateAt: time.Now(),
357359
}
360+
358361
rcfg := m.grantConfig(oauth2.Refreshing)
362+
359363
tv, rv, terr := gen.Token(td, rcfg.IsGenerateRefresh)
360364
if terr != nil {
361365
err = terr
362366
return
363367
}
368+
364369
ti.SetAccess(tv)
365370
ti.SetAccessCreateAt(td.CreateAt)
371+
if rcfg.IsResetRefreshTime {
372+
ti.SetRefreshCreateAt(td.CreateAt)
373+
}
366374
if scope := tgr.Scope; scope != "" {
367375
ti.SetScope(scope)
368376
}
@@ -373,6 +381,7 @@ func (m *Manager) RefreshAccessToken(tgr *oauth2.TokenGenerateRequest) (accessTo
373381
err = verr
374382
return
375383
}
384+
376385
// remove the old access token
377386
if verr := stor.RemoveByAccess(oldAccess); verr != nil {
378387
err = verr

0 commit comments

Comments
 (0)