fix and update
This commit is contained in:
@@ -246,4 +246,21 @@ export class FedcmController {
|
||||
) {
|
||||
return this.syncFedcmSessionFromAuthorization(authorization, res);
|
||||
}
|
||||
|
||||
@Get('login-status')
|
||||
@ApiOperation({
|
||||
summary: 'FedCM Login Status (API origin)',
|
||||
description:
|
||||
'Минимальная HTML-страница на API-домене: Set-Login + navigator.login.setStatus для Chrome FedCM (origin login_url).'
|
||||
})
|
||||
async loginStatus(@Req() req: Request, @Res() res: Response) {
|
||||
const session = await resolveFedcmSessionFromRequest(this.jwt, req.headers.cookie);
|
||||
const loggedIn = Boolean(session);
|
||||
applyFedcmLoginStatus(res, loggedIn);
|
||||
res.setHeader('Content-Type', 'text/html; charset=utf-8');
|
||||
res.setHeader('Cache-Control', 'no-store');
|
||||
res.status(200).send(`<!DOCTYPE html><html lang="ru"><head><meta charset="utf-8"></head><body><script>
|
||||
try{if(navigator.login&&navigator.login.setStatus){navigator.login.setStatus('${loggedIn ? 'logged-in' : 'logged-out'}');}}catch(e){}
|
||||
</script></body></html>`);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user