Blame view

Yi.Vben5.Vue3/apps/backend-mock/api/auth/login.post.ts 995 Bytes
515fceeb   “wangming”   框架初始化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
  import {
    clearRefreshTokenCookie,
    setRefreshTokenCookie,
  } from '~/utils/cookie-utils';
  import { generateAccessToken, generateRefreshToken } from '~/utils/jwt-utils';
  import { forbiddenResponse } from '~/utils/response';
  
  export default defineEventHandler(async (event) => {
    const { password, username } = await readBody(event);
    if (!password || !username) {
      setResponseStatus(event, 400);
      return useResponseError(
        'BadRequestException',
        'Username and password are required',
      );
    }
  
    const findUser = MOCK_USERS.find(
      (item) => item.username === username && item.password === password,
    );
  
    if (!findUser) {
      clearRefreshTokenCookie(event);
      return forbiddenResponse(event, 'Username or password is incorrect.');
    }
  
    const accessToken = generateAccessToken(findUser);
    const refreshToken = generateRefreshToken(findUser);
  
    setRefreshTokenCookie(event, refreshToken);
  
    return useResponseSuccess({
      ...findUser,
      accessToken,
    });
  });