set-auth-token.ts 790 B

12345678910111213141516171819202122232425262728
  1. import { Request, Response } from 'express';
  2. import * as ms from 'ms';
  3. import { AuthOptions } from '../../config/vendure-config';
  4. /**
  5. * Sets the authToken either as a cookie or as a response header, depending on the
  6. * config settings.
  7. */
  8. export function setAuthToken(options: {
  9. authToken: string;
  10. rememberMe: boolean;
  11. authOptions: Required<AuthOptions>;
  12. req: Request;
  13. res: Response;
  14. }) {
  15. const { authToken, rememberMe, authOptions, req, res } = options;
  16. if (authOptions.tokenMethod === 'cookie') {
  17. if (req.session) {
  18. if (rememberMe) {
  19. req.sessionOptions.maxAge = ms('1y');
  20. }
  21. req.session.token = authToken;
  22. }
  23. } else {
  24. res.set(authOptions.authTokenHeaderKey, authToken);
  25. }
  26. }