@@ -87,15 +87,15 @@ func (m *Manager) MapTokenGenerate(gen oauth2.AccessGenerate) {
8787}
8888
8989// MapClientStorage 注入客户端信息存储接口
90- func (m * Manager ) MapClientStorage (stor oauth2.ClientStorage ) {
90+ func (m * Manager ) MapClientStorage (stor oauth2.ClientStore ) {
9191 if stor == nil {
9292 panic (ErrNilValue )
9393 }
9494 m .injector .Map (stor )
9595}
9696
9797// MustClientStorage 强制注入客户端信息存储接口
98- func (m * Manager ) MustClientStorage (stor oauth2.ClientStorage , err error ) {
98+ func (m * Manager ) MustClientStorage (stor oauth2.ClientStore , err error ) {
9999 if err != nil {
100100 panic (err )
101101 }
@@ -106,15 +106,15 @@ func (m *Manager) MustClientStorage(stor oauth2.ClientStorage, err error) {
106106}
107107
108108// MapTokenStorage 注入令牌信息存储接口
109- func (m * Manager ) MapTokenStorage (stor oauth2.TokenStorage ) {
109+ func (m * Manager ) MapTokenStorage (stor oauth2.TokenStore ) {
110110 if stor == nil {
111111 panic (ErrNilValue )
112112 }
113113 m .injector .Map (stor )
114114}
115115
116116// MustTokenStorage 强制注入令牌信息存储接口
117- func (m * Manager ) MustTokenStorage (stor oauth2.TokenStorage , err error ) {
117+ func (m * Manager ) MustTokenStorage (stor oauth2.TokenStore , err error ) {
118118 if err != nil {
119119 panic (err )
120120 }
@@ -126,7 +126,7 @@ func (m *Manager) MustTokenStorage(stor oauth2.TokenStorage, err error) {
126126
127127// GetClient 获取客户端信息
128128func (m * Manager ) GetClient (clientID string ) (cli oauth2.ClientInfo , err error ) {
129- err = m .injector .Apply (func (stor oauth2.ClientStorage ) {
129+ err = m .injector .Apply (func (stor oauth2.ClientStore ) {
130130 cli , err = stor .GetByID (clientID )
131131 if err != nil {
132132 return
@@ -148,7 +148,7 @@ func (m *Manager) GenerateAuthToken(rt oauth2.ResponseType, tgr *oauth2.TokenGen
148148 err = verr
149149 return
150150 }
151- _ , ierr := m .injector .Invoke (func (ti oauth2.TokenInfo , gen oauth2.AuthorizeGenerate , stor oauth2.TokenStorage ) {
151+ _ , ierr := m .injector .Invoke (func (ti oauth2.TokenInfo , gen oauth2.AuthorizeGenerate , stor oauth2.TokenStore ) {
152152 td := & oauth2.GenerateBasic {
153153 Client : cli ,
154154 UserID : tgr .UserID ,
@@ -191,7 +191,12 @@ func (m *Manager) GenerateAccessToken(gt oauth2.GrantType, tgr *oauth2.TokenGene
191191 } else if ti .GetRedirectURI () != tgr .RedirectURI || ti .GetClientID () != tgr .ClientID {
192192 err = ErrAuthTokenInvalid
193193 return
194+ } else if verr := m .RemoveAccessToken (tgr .Code ); verr != nil { // 删除授权码
195+ err = verr
196+ return
194197 }
198+ tgr .UserID = ti .GetUserID ()
199+ tgr .Scope = ti .GetScope ()
195200 }
196201 cli , err := m .GetClient (tgr .ClientID )
197202 if err != nil {
@@ -200,7 +205,7 @@ func (m *Manager) GenerateAccessToken(gt oauth2.GrantType, tgr *oauth2.TokenGene
200205 err = ErrClientInvalid
201206 return
202207 }
203- _ , ierr := m .injector .Invoke (func (ti oauth2.TokenInfo , gen oauth2.AccessGenerate , stor oauth2.TokenStorage ) {
208+ _ , ierr := m .injector .Invoke (func (ti oauth2.TokenInfo , gen oauth2.AccessGenerate , stor oauth2.TokenStore ) {
204209 td := & oauth2.GenerateBasic {
205210 Client : cli ,
206211 UserID : tgr .UserID ,
@@ -242,7 +247,7 @@ func (m *Manager) RefreshAccessToken(refresh, scope string) (token string, err e
242247 if err != nil {
243248 return
244249 }
245- _ , ierr := m .injector .Invoke (func (stor oauth2.TokenStorage , gen oauth2.AccessGenerate ) {
250+ _ , ierr := m .injector .Invoke (func (stor oauth2.TokenStore , gen oauth2.AccessGenerate ) {
246251 cli , cerr := m .GetClient (ti .GetClientID ())
247252 if cerr != nil {
248253 err = cerr
@@ -285,7 +290,7 @@ func (m *Manager) RemoveAccessToken(access string) (err error) {
285290 err = ErrAccessInvalid
286291 return
287292 }
288- _ , ierr := m .injector .Invoke (func (stor oauth2.TokenStorage ) {
293+ _ , ierr := m .injector .Invoke (func (stor oauth2.TokenStore ) {
289294 err = stor .RemoveByAccess (access )
290295 })
291296 if ierr != nil && err == nil {
@@ -300,7 +305,7 @@ func (m *Manager) RemoveRefreshToken(refresh string) (err error) {
300305 err = ErrAccessInvalid
301306 return
302307 }
303- _ , ierr := m .injector .Invoke (func (stor oauth2.TokenStorage ) {
308+ _ , ierr := m .injector .Invoke (func (stor oauth2.TokenStore ) {
304309 err = stor .RemoveByRefresh (refresh )
305310 })
306311 if ierr != nil && err == nil {
@@ -315,7 +320,7 @@ func (m *Manager) LoadAccessToken(access string) (info oauth2.TokenInfo, err err
315320 err = ErrAccessInvalid
316321 return
317322 }
318- _ , ierr := m .injector .Invoke (func (stor oauth2.TokenStorage ) {
323+ _ , ierr := m .injector .Invoke (func (stor oauth2.TokenStore ) {
319324 ct := time .Now ()
320325 ti , terr := stor .GetByAccess (access )
321326 if terr != nil {
@@ -355,7 +360,7 @@ func (m *Manager) LoadRefreshToken(refresh string) (info oauth2.TokenInfo, err e
355360 err = ErrRefreshInvalid
356361 return
357362 }
358- _ , ierr := m .injector .Invoke (func (stor oauth2.TokenStorage ) {
363+ _ , ierr := m .injector .Invoke (func (stor oauth2.TokenStore ) {
359364 ti , terr := stor .GetByRefresh (refresh )
360365 if terr != nil {
361366 err = terr
0 commit comments