Your ROOT_URL in app.ini is https://git.cloudchain.link/ but you are visiting https://dash.bss.nz/open-source-mirrors/ass/commit/4b68cb7c3187602776dde898cf0e997e567f7acc
You should set ROOT_URL correctly, otherwise the web may not work correctly.
4 changed files with
14 additions and
4 deletions
@ -44,7 +44,11 @@ const assMetaMiddleware = (port: number, proxied: boolean): RequestHandler =>
const loginRedirectMiddleware = async ( req : Request , res : Response , next : NextFunction ) = > {
// If auth doesn't exist yet, make the user login
if ( ! req . session . ass ? . auth ) res . redirect ( '/login' ) ;
if ( ! req . session . ass ? . auth ) {
req . session . ass ! . preLoginPath = req . baseUrl ;
log . warn ( 'User not logged in' , req . baseUrl ) ;
res . redirect ( '/login' ) ;
}
else {
const user = ( await get ( 'users' , req . session . ass . auth . uid ) ) as AssUser ;
@ -58,7 +58,11 @@ router.post('/login', BodyParserJson(), (req, res) => {
token : ''
} ;
res . json ( { success , message : ` User [ ${ user . username } ] ${ success ? 'logged' : 'failed to log' } in ` } ) ;
// Respond
res . json ( { success , message : ` User [ ${ user . username } ] ${ success ? 'logged' : 'failed to log' } in ` , meta : { redirectTo : req.session.ass?.preLoginPath ? ? '/user' } } ) ;
// Delete the pre-login path after successful login
if ( success ) delete req . session . ass ? . preLoginPath ;
} )
. catch ( ( err ) = > res . status ( 400 ) . json ( { success : false , message : err.message } ) ) ;
} ) ;
@ -8,6 +8,7 @@ declare module 'express-session' {
uid : string ;
token : string ;
}
preLoginPath? : string ;
}
}
}
@ -36,10 +36,11 @@ document.addEventListener('DOMContentLoaded', () => {
. then ( ( res ) = > res . json ( ) )
. then ( ( data : {
success : boolean ,
message : string
message : string ,
meta : { redirectTo : string }
} ) = > {
if ( ! data . success ) alert ( data . message ) ;
else window . location . href = '/user' ;
else window . location . href = data . meta . redirectTo ;
} )
. catch ( ( err ) = > errAlert ( 'POST to /api/login failed!' , err ) )
. finally ( ( ) = > Elements . submitButton . disabled = false ) ;