| 123456789101112131415161718192021222324252627282930313233343536 |
- import { Request, Response } from 'express';
- import ms from 'ms';
- import { AuthOptions } from '../../config/vendure-config';
- /**
- * Sets the authToken either as a cookie or as a response header, depending on the
- * config settings.
- */
- export function setSessionToken(options: {
- sessionToken: string;
- rememberMe: boolean;
- authOptions: Required<AuthOptions>;
- req: Request;
- res: Response;
- }) {
- const { sessionToken, rememberMe, authOptions, req, res } = options;
- const usingCookie =
- authOptions.tokenMethod === 'cookie' ||
- (Array.isArray(authOptions.tokenMethod) && authOptions.tokenMethod.includes('cookie'));
- const usingBearer =
- authOptions.tokenMethod === 'bearer' ||
- (Array.isArray(authOptions.tokenMethod) && authOptions.tokenMethod.includes('bearer'));
- if (usingCookie) {
- if (req.session) {
- if (rememberMe) {
- req.sessionOptions.maxAge = ms('1y');
- }
- req.session.token = sessionToken;
- }
- }
- if (usingBearer) {
- res.set(authOptions.authTokenHeaderKey, sessionToken);
- }
- }
|