Skip to content

Commit

Permalink
Merge pull request #121 from DeliverBle/style/recording-merge-develop
Browse files Browse the repository at this point in the history
style: conform to eslint style
  • Loading branch information
beer-2000 authored Dec 15, 2022
2 parents 173bea4 + 26730e8 commit d085a6f
Show file tree
Hide file tree
Showing 105 changed files with 2,696 additions and 1,766 deletions.
129 changes: 70 additions & 59 deletions src/auth/auth.controller.ts
Original file line number Diff line number Diff line change
@@ -1,31 +1,38 @@
import { Controller, Get, Header, HttpCode, Logger, Post, Query, Res, UseGuards } from '@nestjs/common';
import {
Controller,
Get,
Header,
HttpCode,
Logger,
Post,
Query,
Res,
UseGuards,
} from '@nestjs/common';
import { message } from 'src/modules/response/response.message';
import { statusCode } from 'src/modules/response/response.status.code';
import { util } from 'src/modules/response/response.util';
import { JwtAuthGuard } from './auth.guard';
import { AuthService } from './auth.service';

require("dotenv").config();
require('dotenv').config();
const kakaoClientId = process.env.KAKAO_CLIENT_ID;
const kakaoCallbackURL = process.env.KAKAO_CALLBACK_URL;

const logger = new Logger('auth.controller');


@Controller('auth')
export class AuthController {
constructor(
private readonly authService: AuthService,
) {}
constructor(private readonly authService: AuthService) {}

/**
* ์ธ๊ฐ€ ์ฝ”๋“œ ๋ฐ›์•„์˜ค๋Š” ๋กœ์ง (ํ”„๋ก ํŠธ)
*/
@Get('/kakao')
@Header('Content-Type', 'text/html')
@HttpCode(200)
kakaoLoginPage(): string {
return `
/**
* ์ธ๊ฐ€ ์ฝ”๋“œ ๋ฐ›์•„์˜ค๋Š” ๋กœ์ง (ํ”„๋ก ํŠธ)
*/
@Get('/kakao')
@Header('Content-Type', 'text/html')
@HttpCode(200)
kakaoLoginPage(): string {
return `
<div>
<h1>์นด์นด์˜ค ๋กœ๊ทธ์ธ</h1>
Expand All @@ -37,55 +44,59 @@ export class AuthController {
<input type="submit" value="์นด์นด์˜ค ๋กœ๊ทธ์•„์›ƒ" />
</form>
`;
}
}

@Get('/kakaoLoginLogic')
@Header('Content-Type', 'text/html')
kakaoLoginGetCode(@Res() res): void {
const _hostName = 'https://kauth.kakao.com';
const _restApiKey = kakaoClientId;
// ์นด์นด์˜ค ๋กœ๊ทธ์ธ redirectURI ๋“ฑ๋ก
const _redirectUrl = kakaoCallbackURL;
const url = `${_hostName}/oauth/authorize?client_id=${_restApiKey}&redirect_uri=${_redirectUrl}&response_type=code`;
return res.redirect(url);
}

@Get('/kakaoLoginLogic')
@Header('Content-Type', 'text/html')
kakaoLoginGetCode(@Res() res): void {
const _hostName = 'https://kauth.kakao.com';
const _restApiKey = kakaoClientId;
// ์นด์นด์˜ค ๋กœ๊ทธ์ธ redirectURI ๋“ฑ๋ก
const _redirectUrl = kakaoCallbackURL;
const url = `${_hostName}/oauth/authorize?client_id=${_restApiKey}&redirect_uri=${_redirectUrl}&response_type=code`;
return res.redirect(url);
}
/**
* ์ƒˆ๋กœ ๋กœ์ง ์ž‘์„ฑ ์ค‘
*/

// ์‚ฌ์šฉ์ž ์ •๋ณด ์กด์žฌ ํ™•์ธ(์ธ๊ฐ€์ฝ”๋“œ๋กœ)
@Post('/authentication/kakao')
@Header('Content-Type', 'application/json; charset=utf-8')
async kakaoLoginGetUserIsByCode(@Query() qs, @Res() res): Promise<Response> {
const code = qs.code;

/**
* ์ƒˆ๋กœ ๋กœ์ง ์ž‘์„ฑ ์ค‘
*/
try {
const jwt = await this.authService.kakaoAuthentication(code);
res.setHeader('Authorization', 'Bearer ' + jwt['accessToken']);

// ์‚ฌ์šฉ์ž ์ •๋ณด ์กด์žฌ ํ™•์ธ(์ธ๊ฐ€์ฝ”๋“œ๋กœ)
@Post('/authentication/kakao')
@Header('Content-Type', 'application/json; charset=utf-8')
async kakaoLoginGetUserIsByCode(@Query() qs, @Res() res): Promise<Response> {
const code = qs.code;

try {
const jwt = await this.authService.kakaoAuthentication(code);
res.setHeader('Authorization', 'Bearer ' + jwt['accessToken']);

return res
.status(statusCode.OK)
.send(util.success(statusCode.OK, message.AUTHENTICATION_SUCCESS, jwt))
return res
.status(statusCode.OK)
.send(util.success(statusCode.OK, message.AUTHENTICATION_SUCCESS, jwt));
} catch (error) {
logger.error(error);
if (error.response.statusCode === statusCode.UNAUTHORIZED) {
return res
.status(statusCode.UNAUTHORIZED)
.send(
util.fail(statusCode.UNAUTHORIZED, message.AUTHENTICATION_FAIL),
);
}
return res
.status(statusCode.INTERNAL_SERVER_ERROR)
.send(
util.fail(
statusCode.INTERNAL_SERVER_ERROR,
message.INTERNAL_SERVER_ERROR,
),
);
}
}

} catch (error) {
logger.error(error);
if (error.response.statusCode === statusCode.UNAUTHORIZED) {
return res
.status(statusCode.UNAUTHORIZED)
.send(util.fail(statusCode.UNAUTHORIZED, message.AUTHENTICATION_FAIL))
}
return res
.status(statusCode.INTERNAL_SERVER_ERROR)
.send(util.fail(statusCode.INTERNAL_SERVER_ERROR, message.INTERNAL_SERVER_ERROR))
}
}

@Get('test')
@UseGuards(JwtAuthGuard)
authTest(@Res() res): void {
return res.send('auth test work');
}
@Get('test')
@UseGuards(JwtAuthGuard)
authTest(@Res() res): void {
return res.send('auth test work');
}
}
3 changes: 1 addition & 2 deletions src/auth/auth.guard.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,4 @@ import { Injectable } from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';

@Injectable()
export class JwtAuthGuard extends AuthGuard('jwt') {
}
export class JwtAuthGuard extends AuthGuard('jwt') {}
2 changes: 1 addition & 1 deletion src/auth/auth.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ import { AuthService } from './auth.service';
],
controllers: [AuthController],
providers: [AuthService, JwtStrategy],
exports: [AuthService]
exports: [AuthService],
})
export class AuthModule {}
53 changes: 28 additions & 25 deletions src/auth/auth.passport.jwt.strategy.ts
Original file line number Diff line number Diff line change
@@ -1,32 +1,35 @@
import { Injectable, Logger, UnauthorizedException } from "@nestjs/common";
import { Injectable, Logger, UnauthorizedException } from '@nestjs/common';
import { ExtractJwt, Strategy, VerifiedCallback } from 'passport-jwt';
import { AuthGuard, PassportStrategy } from "@nestjs/passport";
import { AuthService } from "./auth.service";
import { Payload } from "./dto/payload";
import { AuthGuard, PassportStrategy } from '@nestjs/passport';
import { AuthService } from './auth.service';
import { Payload } from './dto/payload';


const logger: Logger = new Logger;
const logger: Logger = new Logger();

@Injectable()
export class JwtStrategy extends PassportStrategy(Strategy){
constructor(private authService: AuthService){
super({
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
ignoreExpiration: true,
// signOptions: { expiresIn: '10s' },
secretOrKey: process.env.JWT_SECRET,
})
}

async validate(payload: Payload, done: VerifiedCallback): Promise<any> {
const user = await this.authService.tokenValidateUser(payload);
console.log(user);
if (!user) {
logger.debug('auth test fail >>>>', user);
return done(new UnauthorizedException({ message: 'user does not exist (in JwtStrategy)' }), false);
}
export class JwtStrategy extends PassportStrategy(Strategy) {
constructor(private authService: AuthService) {
super({
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
ignoreExpiration: true,
// signOptions: { expiresIn: '10s' },
secretOrKey: process.env.JWT_SECRET,
});
}

return done(null, user);
async validate(payload: Payload, done: VerifiedCallback): Promise<any> {
const user = await this.authService.tokenValidateUser(payload);
console.log(user);
if (!user) {
logger.debug('auth test fail >>>>', user);
return done(
new UnauthorizedException({
message: 'user does not exist (in JwtStrategy)',
}),
false,
);
}
}

return done(null, user);
}
}
Loading

0 comments on commit d085a6f

Please sign in to comment.