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;
 | |
| });
 |