mirror of
https://github.com/volatiletech/authboss.git
synced 2025-02-03 13:21:22 +02:00
Add context.Context to RememberingServerStorer
This commit is contained in:
parent
ea27d16052
commit
db3a3a10e3
@ -3,6 +3,12 @@
|
||||
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
||||
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [2.0.0-rc4] - 2018-06-27
|
||||
|
||||
### Changed
|
||||
|
||||
- RememberingServerStorer now has context on its methods
|
||||
|
||||
## [2.0.0-rc3] - 2018-05-25
|
||||
|
||||
### Changed
|
||||
|
@ -74,7 +74,7 @@ func (a *Authboss) UpdatePassword(ctx context.Context, user AuthableUser, newPas
|
||||
return nil
|
||||
}
|
||||
|
||||
return rmStorer.DelRememberTokens(user.GetPID())
|
||||
return rmStorer.DelRememberTokens(ctx, user.GetPID())
|
||||
}
|
||||
|
||||
// Middleware prevents someone from accessing a route by returning a 404 if they are not logged in.
|
||||
|
@ -260,20 +260,20 @@ func (s *ServerStorer) LoadByRecoverSelector(ctx context.Context, selector strin
|
||||
}
|
||||
|
||||
// AddRememberToken for remember me
|
||||
func (s *ServerStorer) AddRememberToken(key, token string) error {
|
||||
func (s *ServerStorer) AddRememberToken(ctx context.Context, key, token string) error {
|
||||
arr := s.RMTokens[key]
|
||||
s.RMTokens[key] = append(arr, token)
|
||||
return nil
|
||||
}
|
||||
|
||||
// DelRememberTokens for a user
|
||||
func (s *ServerStorer) DelRememberTokens(key string) error {
|
||||
func (s *ServerStorer) DelRememberTokens(ctx context.Context, key string) error {
|
||||
delete(s.RMTokens, key)
|
||||
return nil
|
||||
}
|
||||
|
||||
// UseRememberToken if it exists, deleting it in the process
|
||||
func (s *ServerStorer) UseRememberToken(givenKey, token string) (err error) {
|
||||
func (s *ServerStorer) UseRememberToken(ctx context.Context, givenKey, token string) (err error) {
|
||||
arr, ok := s.RMTokens[givenKey]
|
||||
if !ok {
|
||||
return authboss.ErrTokenNotFound
|
||||
|
@ -65,17 +65,17 @@ func (m *mockServerStorer) Save(ctx context.Context, user User) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *mockServerStorer) AddRememberToken(pid, token string) error {
|
||||
func (m *mockServerStorer) AddRememberToken(ctx context.Context, pid, token string) error {
|
||||
m.Tokens[pid] = append(m.Tokens[pid], token)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *mockServerStorer) DelRememberTokens(pid string) error {
|
||||
func (m *mockServerStorer) DelRememberTokens(ctx context.Context, pid string) error {
|
||||
delete(m.Tokens, pid)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *mockServerStorer) UseRememberToken(pid, token string) error {
|
||||
func (m *mockServerStorer) UseRememberToken(ctx context.Context, pid, token string) error {
|
||||
arr, ok := m.Tokens[pid]
|
||||
if !ok {
|
||||
return ErrTokenNotFound
|
||||
|
@ -58,7 +58,7 @@ func (r *Remember) RememberAfterAuth(w http.ResponseWriter, req *http.Request, h
|
||||
}
|
||||
|
||||
storer := authboss.EnsureCanRemember(r.Authboss.Config.Storage.Server)
|
||||
if err = storer.AddRememberToken(user.GetPID(), hash); err != nil {
|
||||
if err = storer.AddRememberToken(req.Context(), user.GetPID(), hash); err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
@ -119,7 +119,7 @@ func Authenticate(ab *authboss.Authboss, w http.ResponseWriter, req **http.Reque
|
||||
hash := base64.StdEncoding.EncodeToString(sum[:])
|
||||
|
||||
storer := authboss.EnsureCanRemember(ab.Config.Storage.Server)
|
||||
err = storer.UseRememberToken(pid, hash)
|
||||
err = storer.UseRememberToken((*req).Context(), pid, hash)
|
||||
switch {
|
||||
case err == authboss.ErrTokenNotFound:
|
||||
logger.Infof("remember me cookie had a token that was not in storage, deleting cookie")
|
||||
@ -134,7 +134,7 @@ func Authenticate(ab *authboss.Authboss, w http.ResponseWriter, req **http.Reque
|
||||
return err
|
||||
}
|
||||
|
||||
if err = storer.AddRememberToken(pid, hash); err != nil {
|
||||
if err = storer.AddRememberToken((*req).Context(), pid, hash); err != nil {
|
||||
return errors.Wrap(err, "failed to save remember me token")
|
||||
}
|
||||
|
||||
@ -163,7 +163,7 @@ func (r *Remember) AfterPasswordReset(w http.ResponseWriter, req *http.Request,
|
||||
|
||||
logger.Infof("deleting tokens and rm cookies for user %s due to password reset", pid)
|
||||
|
||||
return false, storer.DelRememberTokens(pid)
|
||||
return false, storer.DelRememberTokens(req.Context(), pid)
|
||||
}
|
||||
|
||||
// GenerateToken creates a remember me token
|
||||
|
@ -99,12 +99,12 @@ type RememberingServerStorer interface {
|
||||
ServerStorer
|
||||
|
||||
// AddRememberToken to a user
|
||||
AddRememberToken(pid, token string) error
|
||||
AddRememberToken(ctx context.Context, pid, token string) error
|
||||
// DelRememberTokens removes all tokens for the given pid
|
||||
DelRememberTokens(pid string) error
|
||||
DelRememberTokens(ctx context.Context, pid string) error
|
||||
// UseRememberToken finds the pid-token pair and deletes it.
|
||||
// If the token could not be found return ErrTokenNotFound
|
||||
UseRememberToken(pid, token string) error
|
||||
UseRememberToken(ctx context.Context, pid, token string) error
|
||||
}
|
||||
|
||||
// EnsureCanCreate makes sure the server storer supports create operations
|
||||
|
Loading…
x
Reference in New Issue
Block a user