@@ -18,7 +18,7 @@ const {
1818 findUser,
1919} = require ( '~/models' ) ;
2020const { getGraphApiToken } = require ( '~/server/services/GraphTokenService' ) ;
21- const { getOpenIdConfig, getOpenIdEmail } = require ( '~/strategies' ) ;
21+ const { getOpenIdConfig, getSolidOpenIdConfig , getOpenIdEmail } = require ( '~/strategies' ) ;
2222
2323const registrationController = async ( req , res ) => {
2424 try {
@@ -97,44 +97,44 @@ async function performOpenIDRefresh(
9797 strategyName : 'refreshController' ,
9898 } ) ;
9999
100- logger . debug (
101- `[refreshController] findOpenIDUser result: user=${ user ?. email ?? 'null' } , error=${ error ?? 'null' } , migration=${ migration } , userOpenidId=${ user ?. openidId ?? 'null' } , claimsSub=${ claims . sub } ` ,
102- ) ;
100+ logger . debug (
101+ `[refreshController] findOpenIDUser result: user=${ user ?. email ?? 'null' } , error=${ error ?? 'null' } , migration=${ migration } , userOpenidId=${ user ?. openidId ?? 'null' } , claimsSub=${ claims . sub } ` ,
102+ ) ;
103103
104- if ( error || ! user ) {
105- logger . warn (
106- `[refreshController] Redirecting to /login: error=${ error ?? 'null' } , user=${ user ? 'exists' : 'null' } ` ,
107- ) ;
108- return res . status ( 401 ) . redirect ( '/login' ) ;
109- }
104+ if ( error || ! user ) {
105+ logger . warn (
106+ `[refreshController] Redirecting to /login: error=${ error ?? 'null' } , user=${ user ? 'exists' : 'null' } ` ,
107+ ) ;
108+ return res . status ( 401 ) . redirect ( '/login' ) ;
109+ }
110110
111- // Handle migration: update user with openidId if found by email without openidId
112- // Also handle case where user has mismatched openidId (e.g., after database switch)
113- if ( migration || user . openidId !== claims . sub ) {
114- const reason = migration ? 'migration' : 'openidId mismatch' ;
115- await updateUser ( user . _id . toString ( ) , {
116- provider : user . provider || 'openid' ,
117- openidId : claims . sub ,
118- } ) ;
119- logger . info (
120- `[refreshController] Updated user ${ user . email } openidId (${ reason } ): ${ user . openidId ?? 'null' } -> ${ claims . sub } ` ,
121- ) ;
122- }
111+ // Handle migration: update user with openidId if found by email without openidId
112+ // Also handle case where user has mismatched openidId (e.g., after database switch)
113+ if ( migration || user . openidId !== claims . sub ) {
114+ const reason = migration ? 'migration' : 'openidId mismatch' ;
115+ await updateUser ( user . _id . toString ( ) , {
116+ provider : user . provider || 'openid' ,
117+ openidId : claims . sub ,
118+ } ) ;
119+ logger . info (
120+ `[refreshController] Updated user ${ user . email } openidId (${ reason } ): ${ user . openidId ?? 'null' } -> ${ claims . sub } ` ,
121+ ) ;
122+ }
123123
124124 // setOpenIDAuthTokens sets token_provider cookie correctly (solid vs openid)
125125 req . user = user ;
126126 if ( tokenProvider ) {
127127 user . provider = user . provider || tokenProvider ;
128128 }
129129
130- const token = setOpenIDAuthTokens ( tokenset , req , res , user . _id . toString ( ) , refreshToken ) ;
130+ const token = setOpenIDAuthTokens ( tokenset , req , res , user . _id . toString ( ) , refreshToken ) ;
131131
132- user . federatedTokens = {
133- access_token : tokenset . access_token ,
134- id_token : tokenset . id_token ,
135- refresh_token : refreshToken ,
136- expires_at : claims . exp ,
137- } ;
132+ user . federatedTokens = {
133+ access_token : tokenset . access_token ,
134+ id_token : tokenset . id_token ,
135+ refresh_token : refreshToken ,
136+ expires_at : claims . exp ,
137+ } ;
138138
139139 res . status ( 200 ) . send ( { token, user } ) ;
140140 return true ;
0 commit comments