Skip to content

Commit 97f6c7d

Browse files
committed
fix: authorize endpoint setting user session
1 parent 5f385b2 commit 97f6c7d

File tree

6 files changed

+7
-6
lines changed

6 files changed

+7
-6
lines changed

server/handlers/authorize.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ func AuthorizeHandler() gin.HandlerFunc {
248248
return
249249
}
250250

251-
memorystore.Provider.SetUserSession(user.ID, constants.TokenTypeSessionToken+"_"+newSessionTokenData.Nonce, newSessionToken)
251+
memorystore.Provider.SetUserSession(sessionKey, constants.TokenTypeSessionToken+"_"+newSessionTokenData.Nonce, newSessionToken)
252252
cookie.SetSession(gc, newSessionToken)
253253
code := uuid.New().String()
254254
memorystore.Provider.SetState(codeChallenge, code+"@"+newSessionToken)

server/handlers/token.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@ func TokenHandler() gin.HandlerFunc {
7676
sessionKey := ""
7777

7878
if isAuthorizationCodeGrant {
79-
8079
if codeVerifier == "" {
8180
log.Debug("Code verifier is empty")
8281
gc.JSON(http.StatusBadRequest, gin.H{
@@ -134,15 +133,18 @@ func TokenHandler() gin.HandlerFunc {
134133
})
135134
return
136135
}
136+
137137
userID = claims.Subject
138138
roles = claims.Roles
139139
scope = claims.Scope
140140
loginMethod = claims.LoginMethod
141+
141142
// rollover the session for security
142143
sessionKey = userID
143144
if loginMethod != "" {
144145
sessionKey = loginMethod + ":" + userID
145146
}
147+
146148
go memorystore.Provider.DeleteUserSession(sessionKey, claims.Nonce)
147149
} else {
148150
// validate refresh token

server/memorystore/providers/inmemory/store.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"github.com/authorizerdev/authorizer/server/constants"
88
)
99

10-
// SetUserSession sets the user session
10+
// SetUserSession sets the user session for given user identifier in form recipe:user_id
1111
func (c *provider) SetUserSession(userId, key, token string) error {
1212
c.sessionStore.Set(userId, key, token)
1313
return nil

server/memorystore/providers/providers.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package providers
22

33
// Provider defines current memory store provider
44
type Provider interface {
5-
// SetUserSession sets the user session
5+
// SetUserSession sets the user session for given user identifier in form recipe:user_id
66
SetUserSession(userId, key, token string) error
77
// GetAllUserSessions returns all the user sessions from the session store
88
GetAllUserSessions(userId string) (map[string]string, error)

server/memorystore/providers/redis/store.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ var (
1414
envStorePrefix = "authorizer_env"
1515
)
1616

17-
// SetUserSession sets the user session in redis store.
17+
// SetUserSession sets the user session for given user identifier in form recipe:user_id
1818
func (c *provider) SetUserSession(userId, key, token string) error {
1919
err := c.store.HSet(c.ctx, userId, key, token).Err()
2020
if err != nil {

server/token/auth_token.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,6 @@ func ValidateBrowserSession(gc *gin.Context, encryptedSession string) (*SessionD
298298
if res.LoginMethod != "" {
299299
sessionStoreKey = res.LoginMethod + ":" + res.Subject
300300
}
301-
302301
token, err := memorystore.Provider.GetUserSession(sessionStoreKey, constants.TokenTypeSessionToken+"_"+res.Nonce)
303302
if token == "" || err != nil {
304303
log.Debug("invalid browser session:", err)

0 commit comments

Comments
 (0)