@@ -146,10 +146,23 @@ export class LoginProvider {
146146 app . use ( passport . initialize ( ) ) ;
147147 app . use ( passport . session ( ) ) ;
148148 passport . serializeUser ( async function ( user : any , done : any ) : Promise < void > {
149- done ( null , user ) ;
149+ const tuser : TokenUser = TokenUser . From ( user ) ;
150+ await Auth . AddUser ( tuser as any , tuser . _id , "passport" ) ;
151+ done ( null , user . _id ) ;
150152 } ) ;
151- passport . deserializeUser ( function ( user : any , done : any ) : void {
152- done ( null , user ) ;
153+ passport . deserializeUser ( async function ( userid : string , done : any ) : Promise < void > {
154+ if ( NoderedUtil . IsNullEmpty ( userid ) ) return done ( 'missing userid' , null ) ;
155+ if ( typeof userid !== 'string' ) userid = ( userid as any ) . _id
156+ if ( NoderedUtil . IsNullEmpty ( userid ) ) return done ( 'missing userid' , null ) ;
157+ const _user = await Auth . getUser ( userid , "passport" ) ;
158+ if ( _user == null ) {
159+ const user = await DBHelper . FindByUsernameOrId ( null , userid , null ) ;
160+ const tuser = TokenUser . From ( user ) ;
161+ await Auth . AddUser ( tuser as any , tuser . _id , "passport" ) ;
162+ done ( null , tuser ) ;
163+ } else {
164+ done ( null , _user ) ;
165+ }
153166 } ) ;
154167
155168 app . use ( function ( req , res , next ) {
@@ -1023,6 +1036,7 @@ export class LoginProvider {
10231036 }
10241037 const tuser : TokenUser = TokenUser . From ( user ) ;
10251038 Audit . LoginSuccess ( tuser , "weblogin" , "local" , remoteip , "browser" , "unknown" , span ) ;
1039+ // tuser.roles.splice(40, tuser.roles.length)
10261040 Logger . otel . endSpan ( span ) ;
10271041 return done ( null , tuser ) ;
10281042 } catch ( error ) {
0 commit comments