Some checks failed
CI / Test (ubuntu-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / Lint (ubuntu-latest) (push) Has been cancelled
CI / Lint (windows-latest) (push) Has been cancelled
CI / Check (ubuntu-latest) (push) Has been cancelled
CI / Check (windows-latest) (push) Has been cancelled
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Has been cancelled
Deploy Website on push / Deploy Push Playground Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Docs Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Antd Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Element Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Naive Ftp (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
CI / CI OK (push) Has been cancelled
Deploy Website on push / Rerun on failure (push) Has been cancelled
34 lines
835 B
TypeScript
34 lines
835 B
TypeScript
import {
|
|
clearRefreshTokenCookie,
|
|
getRefreshTokenFromCookie,
|
|
setRefreshTokenCookie,
|
|
} from '~/utils/cookie-utils';
|
|
import { verifyRefreshToken } from '~/utils/jwt-utils';
|
|
import { forbiddenResponse } from '~/utils/response';
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const refreshToken = getRefreshTokenFromCookie(event);
|
|
if (!refreshToken) {
|
|
return forbiddenResponse(event);
|
|
}
|
|
|
|
clearRefreshTokenCookie(event);
|
|
|
|
const userinfo = verifyRefreshToken(refreshToken);
|
|
if (!userinfo) {
|
|
return forbiddenResponse(event);
|
|
}
|
|
|
|
const findUser = MOCK_USERS.find(
|
|
(item) => item.username === userinfo.username,
|
|
);
|
|
if (!findUser) {
|
|
return forbiddenResponse(event);
|
|
}
|
|
const accessToken = generateAccessToken(findUser);
|
|
|
|
setRefreshTokenCookie(event, refreshToken);
|
|
|
|
return accessToken;
|
|
});
|