mirror of
https://github.com/go-gitea/gitea.git
synced 2026-01-30 21:02:34 +01:00
Fix OIDC session persistence by setting remember me cookie
- Add remember me cookie creation for OAuth2/OIDC login (non-2FA path) - Set twofaRemember to true for OAuth2/OIDC login with 2FA - Import required auth_service and timeutil packages - Cookie expires after LOGIN_REMEMBER_DAYS like regular login Co-authored-by: silverwind <115237+silverwind@users.noreply.github.com>
This commit is contained in:
parent
c431be149a
commit
77cb90fb9a
@ -21,6 +21,8 @@ import (
|
||||
"code.gitea.io/gitea/modules/optional"
|
||||
"code.gitea.io/gitea/modules/session"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
"code.gitea.io/gitea/modules/timeutil"
|
||||
auth_service "code.gitea.io/gitea/services/auth"
|
||||
source_service "code.gitea.io/gitea/services/auth/source"
|
||||
"code.gitea.io/gitea/services/auth/source/oauth2"
|
||||
"code.gitea.io/gitea/services/context"
|
||||
@ -380,6 +382,14 @@ func handleOAuth2SignIn(ctx *context.Context, authSource *auth.Source, u *user_m
|
||||
return
|
||||
}
|
||||
|
||||
// Set the remember me cookie for OAuth2 login to persist the session
|
||||
nt, token, err := auth_service.CreateAuthTokenForUserID(ctx, u.ID)
|
||||
if err != nil {
|
||||
ctx.ServerError("CreateAuthTokenForUserID", err)
|
||||
return
|
||||
}
|
||||
ctx.SetSiteCookie(setting.CookieRememberName, nt.ID+":"+token, setting.LogInRememberDays*timeutil.Day)
|
||||
|
||||
if err := updateSession(ctx, nil, map[string]any{
|
||||
session.KeyUID: u.ID,
|
||||
session.KeyUname: u.Name,
|
||||
@ -408,7 +418,7 @@ func handleOAuth2SignIn(ctx *context.Context, authSource *auth.Source, u *user_m
|
||||
if err := updateSession(ctx, nil, map[string]any{
|
||||
// User needs to use 2FA, save data and redirect to 2FA page.
|
||||
"twofaUid": u.ID,
|
||||
"twofaRemember": false,
|
||||
"twofaRemember": true, // OAuth2 login should always be remembered
|
||||
}); err != nil {
|
||||
ctx.ServerError("updateSession", err)
|
||||
return
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user