nak512
@nak5129116
Reviews Written
-
Average Rating
-
Posts
Q&A
tsum ๊ด๋ จํด์ ์ง๋ฌธ๋๋ฆฝ๋๋ค
์ ๋ ๊ทธ๋ ๊ฒ ์๊ฐํด์, ๋ค์๊ณผ ๊ฐ์ด ์ ๊ทผํด๋ณด์์ต๋๋ค. ๋ฐ๋์ด ๋ฌด๊ฒ W ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค๊ณ ๊ทธ ๋ฆฌ์คํธ๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ ํ, ์ฒ์์ผ๋ก ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฐ(์ต๋ ๋ฌด๊ฒ ๊ฐ)์ด ๋์ค๋ฉด ์ฌ๊ท ํ์ถํ๋๋ก ํ์์ต๋๋ค.
- 0
- 1
- 473
Q&A
user ์ธ์ serialize ๋ฌธ์ ์ง๋ฌธ
์๋ ํ์ธ์, ์ ๋ก์ด๋.๋ต๋ณ ์ฃผ์ จ๋๋ฐ๋ ๋ถ๊ตฌํ๊ณ ๋ฆ๊ฒ ์๋ตํด์ ์ฃ์กํฉ๋๋ค.๋ง์ํด์ฃผ์ , https://github.com/ZeroCho/sleact/blob/master/nest-typeorm/src/auth/local.serializer.ts#L18 ์์น์ ์๋console.log(user) ์์ฒด๊ฐ ์คํ์ด ๋์ง ์์ต๋๋ค.---------------- auth.service.ts async validateUser ์์ค์ฝ๋์ console.log ---------------------- async validateUser(email: string, password: string){ const user = await this.usersRepository.findOne({ where: {email}, select:['id', 'email', 'password', 'nickname'], }) console.log(user); if(!user){ return null; } const result = await bcryptjs.compare(password, user.password); console.log(result); if(result){ const {password, ...userWithoutPassword} = user; return userWithoutPassword; } return null; } query: SELECT `Users`.`id` AS `Users_id`, `Users`.`email` AS `Users_email`, `Users`.`nickname` AS `Users_nickname`, `Users`.`password` AS `Users_password` FROM `users` `Users` WHERE ( `Users`.`email` = ? ) AND ( `Users`.`deletedAt` IS NULL ) LIMIT 1 -- PARAMETERS: ["test5@naver.com"] Users { id: 5, email: 'test5@naver.com', nickname: 'ํ ์คํธ1', password: '$2a$12$RXFoHQTpSF05vaQ.USsP7e2M15C7Mi/HhY.eHhy.x/gHQx.J6WHTu' } true ---> user.password์ ๋ก๊ทธ์ธ์ ์ํด ์ ๋ ฅ ๋ฐ์ ๋น๋ฐ๋ฒํธ ๋น๊ต ๊ฐ์ด ๋์ผํ์ง ๋น๊ตํ ๊ฒฐ๊ณผ ๊ฐ(result)---------------- local.strategy.ts ----------------- async validate ์์ค์ฝ๋์ console.log ๋ถ๋ถ async validate(email: string, password: string, done: CallableFunction) { const user = await this.authService.validateUser(email, password); console.log('validate user', user); if (!user) { throw new UnauthorizedException(); } return done(null, user); } validate user { id: 5, email: 'test5@naver.com', nickname: 'ํ ์คํธ1' } ------------- local-auth.guard.ts ------------- ์์ค์ฝ๋์ console.log ๋ถ๋ถ @Injectable() export class LocalAuthGuard extends AuthGuard('local'){ async canActivate(context: ExecutionContext): Promiseboolean>{ const can = await super.canActivate(context); if(can){ const request = context.switchToHttp().getRequest(); console.log('login for cookie'); await super.logIn(request); } return true; } } login for cookie์์ ๊ฐ์ด ์ถ๋ ฅ๋ฉ๋๋ค.์์ ๋ด์ฉ์ ํธ์ง ์์ด ๋ก๊ทธ๋ง ์ถ๋ ฅํ๋ฉด ์๋์ ๊ฐ์ต๋๋ค.--------------------- ์์ --------------- query: SELECT `Users`.`id` AS `Users_id`, `Users`.`email` AS `Users_email`, `Users`.`nickname` AS `Users_nickname`, `Users`.`password` AS `Users_password` FROM `users` `Users` WHERE ( `Users`.`email` = ? ) AND ( `Users`.`deletedAt` IS NULL ) LIMIT 1 -- PARAMETERS: ["test5@naver.com"] Users { id: 5, email: 'test5@naver.com', nickname: 'ํ ์คํธ1', password: '$2a$12$RXFoHQTpSF05vaQ.USsP7e2M15C7Mi/HhY.eHhy.x/gHQx.J6WHTu' } true validate user { id: 5, email: 'test5@naver.com', nickname: 'ํ ์คํธ1' } login for cookie [Nest] 29836 - 2021. 09. 29. ์คํ 9:06:02 ERROR [ExceptionsHandler] Failed to serialize user into session Error: Failed to serialize user into session at pass (D:\Slack\nest\dist\main.js:14934:19) at Authenticator.serializeUser (D:\Slack\nest\dist\main.js:14952:5) at SessionManager.logIn (D:\Slack\nest\dist\main.js:15240:8) at IncomingMessage.req.login.req.logIn (D:\Slack\nest\node_modules\passport\lib\http\request.js:50:33) at D:\Slack\nest\dist\main.js:13559:64 at new Promise () at LocalAuthGuard. (D:\Slack\nest\dist\main.js:13559:23) at Generator.next () at D:\Slack\nest\dist\main.js:13516:71 at new Promise () --------------------- ๋ ---------------์๋ฒ ๊ตฌ๋ ํ POSTMAN์ผ๋ก ๋ก๊ทธ์ธ ์ ์๋ํ๊ณ ์๋ ์ํฉ์ ๋๋ค.
- 0
- 2
- 434
Q&A
ํ์ ๊ฐ์ ํ๋ก์ธ์ค ๊ด๋ จ ์ง๋ฌธ
๊ฐ์ฌํฉ๋๋ค ์กฐํ์ ์ ์๋.ํฌ์คํธ๋งจ์ ์ฒ์์จ๋ด์ ์ฌ์ฉ๋ฒ์ ์ต์์น ์์ ํฌ์คํธ๋งจ์์ POST๋ก raw ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๋ json ํ์์ด ์๋๋ผ text๋ก ๋ณด๋ด์ ๊ทธ๋ฐ๊ฒ์ด์์ด์. ๋น ๋ฅธ ๋ต๋ณ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
- 0
- 2
- 300




