use providerFactory.provider instead of hardcoding google

This commit is contained in:
Raghunandan
2020-05-26 16:43:08 +02:00
parent fccdb7e3ef
commit 12d41d0f0a
2 changed files with 17 additions and 12 deletions
@@ -48,11 +48,11 @@ export class GoogleAuthProvider
secure: false,
sameSite: 'none',
domain: 'localhost',
path: `/auth/google/handler`,
path: `/auth/${this.providerConfig.provider}/handler`,
httpOnly: true,
};
res.cookie(`google-nonce`, nonce, options);
res.cookie(`${this.providerConfig.provider}-nonce`, nonce, options);
const scope = req.query.scope?.toString() ?? '';
if (!scope) {
@@ -71,7 +71,7 @@ export class GoogleAuthProvider
res: express.Response,
next: express.NextFunction,
) {
const cookieNonce = req.cookies[`google-nonce`];
const cookieNonce = req.cookies[`${this.providerConfig.provider}-nonce`];
const stateNonce = req.query.state;
if (!cookieNonce || !stateNonce) {
@@ -106,11 +106,15 @@ export class GoogleAuthProvider
secure: false,
sameSite: 'none',
domain: 'localhost',
path: `/auth/google`,
path: `/auth/${this.providerConfig.provider}`,
httpOnly: true,
};
res.cookie(`google-refresh-token`, refreshToken, options);
res.cookie(
`${this.providerConfig.provider}-refresh-token`,
refreshToken,
options,
);
return postMessageResponse(res, {
type: 'auth-result',
payload: user,
@@ -128,11 +132,11 @@ export class GoogleAuthProvider
secure: false,
sameSite: 'none',
domain: 'localhost',
path: `/auth/google`,
path: `/auth/${this.providerConfig.provider}`,
httpOnly: true,
};
res.cookie(`google-refresh-token`, '', options);
res.cookie(`${this.providerConfig.provider}-refresh-token`, '', options);
return res.send('logout!');
}
@@ -141,7 +145,8 @@ export class GoogleAuthProvider
return res.status(401).send('Invalid X-Requested-With header');
}
const refreshToken = req.cookies[`google-refresh-token`];
const refreshToken =
req.cookies[`${this.providerConfig.provider}-refresh-token`];
if (!refreshToken) {
return res.status(401).send('Missing session cookie');
+4 -4
View File
@@ -20,11 +20,11 @@ import { ProviderFactories } from './factories';
export const defaultRouter = (provider: AuthProviderRouteHandlers) => {
const router = Router();
router.get('/start', provider.start);
router.get('/handler/frame', provider.frameHandler);
router.get('/logout', provider.logout);
router.get('/start', provider.start.bind(provider));
router.get('/handler/frame', provider.frameHandler.bind(provider));
router.get('/logout', provider.logout.bind(provider));
if (provider.refresh) {
router.get('/refresh', provider.refresh);
router.get('/refresh', provider.refresh.bind(provider));
}
return router;
};