1
0

refresh.post.ts 835 B

123456789101112131415161718192021222324252627282930313233
  1. import {
  2. clearRefreshTokenCookie,
  3. getRefreshTokenFromCookie,
  4. setRefreshTokenCookie,
  5. } from '~/utils/cookie-utils';
  6. import { verifyRefreshToken } from '~/utils/jwt-utils';
  7. import { forbiddenResponse } from '~/utils/response';
  8. export default defineEventHandler(async (event) => {
  9. const refreshToken = getRefreshTokenFromCookie(event);
  10. if (!refreshToken) {
  11. return forbiddenResponse(event);
  12. }
  13. clearRefreshTokenCookie(event);
  14. const userinfo = verifyRefreshToken(refreshToken);
  15. if (!userinfo) {
  16. return forbiddenResponse(event);
  17. }
  18. const findUser = MOCK_USERS.find(
  19. (item) => item.username === userinfo.username,
  20. );
  21. if (!findUser) {
  22. return forbiddenResponse(event);
  23. }
  24. const accessToken = generateAccessToken(findUser);
  25. setRefreshTokenCookie(event, refreshToken);
  26. return accessToken;
  27. });