섹션 5 login 인증 기능
섹션5 인증관련 login 기능 코드를 수업과 똑같이 작성 했는데 postman 에서
{ "success": false, "status": 400, "message": "Bad Request" } 에러 뜹니다.
터미널에서 뜨는내용
{"level":50,"time":1718325166296,"pid":23544,"hostname":"DESKTOP-BDGKO8E","reqId":"req-d","err":{"type":"Error","message":"\"expiresIn\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60","stack":"Error: \"expiresIn\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60\n at module.exports [as sign] (D:\\Practice\\slog-fastify-prisma-ts-study\\node_modules\\jsonwebtoken\\sign.js:213:22)\n at generateRefreshToken (d:\\Practice\\slog-fastify-prisma-ts-study\\src\\lib\\authHelper.ts:54:30)\n at Object.loginWithPassword (d:\\Practice\\slog-fastify-prisma-ts-study\\src\\services\\authService.ts:46:30)\n at Object.<anonymous> (d:\\Practice\\slog-fastify-prisma-ts-study\\src\\routes\\auth\\index.ts:24:28)"},"msg":"\"expiresIn\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60"}
{"level":30,"time":1718325166297,"pid":23544,"hostname":"DESKTOP-BDGKO8E","reqId":"req-d","res":{"statusCode":400},"responseTime":44.27779999934137,"msg":"request completed"}
어디 부분을 수정해야 하는지요?
답변 2
0
안녕하세요 ~ 답변 감사합니다.
우선 register 와 로그인 기능은 잘 되는데 logout 기능이 계속 아래와 같이 나옵니다.
{
"success": false,
"status": 400,
"message": "Unauthorized"
}무슨 문제인지를 모르겠습니다.
소스코드 이멜로 보냈습니다.
0
이부분은 쿠키 생성때문인것 같습니다.
쿠키 옵션에서의 domain을 127.0.0.1로 설정하고
postman에서 접속주소를 localhost:포트 이렇게 호출을 하면 쿠키가 생성되지 않습니다.
setCookie에서의 domain과 접속주소가 같아야 정상적으로 쿠카가 생성됩니다 .
보내주신 코드로 테스트 해보니 domain과 postman의 접속주소를 일치시키니 정상적으로 login과 logout이 되는 것을 확인했습니다.
이부분 참고하시기 바랍니다.
0
일단 저도 보내주신 화면과 같이 vscode 내부에 패키지로 설치한 postman을 이용해서 테스트 해보니 logout이 작동하지 않는 현상을 발견했습니다. 이런 현상이 발생하는 이유는 쿠키가 생성은 되지만 원인모를 이유로 logout시 인식을 하지 못하기 때문인 것 같습니다.
이부분의 경우 vscode 내부의 post맨 설정때문인지 혹은 다른 문제인지는 저도 조금 자료를 찾아봐야 할 것 같습니다
괜찮으시면 vscode 패키지로 postman을 사용하지 마시고 별도로 아래 사이트에서 postman을 다운받아서 사용해 보시기 바랍니다.
만약 그래도 안되다면 다시 한번 문의주시기 바랍니다.
0
일단 이메시지 만으로는 오류를 확인하기 힘들것 같습니다.
코드를 부분적으로 올려주시거나
아니면 아래 이메일로 node_module을 제외한 코드 파일만 압축해서 보내주시면 제가 확인해 보고 알려드리도록 하겠습니다.
참고로 메일로 코드를 보내실 경우 소스코드 때문에 첨부가 안되는 경우가 있는데 이럴경우는 구글 드라이버등에 압축파일을 올리고 그 링크를 보내주시면 되겠습니다.
freeseamew@gmail.com
0
보내주신 코드를 분석해 보니 .env파일이 없고, 또 그외에 DB와 통신이 정상적이 않았던 것 같습니다.
회원가입에서도 같은 오류가 나서 authHelper에 error 를 throw하는 부분에 console.log를 대신 넣어 확인해 보니 다음과 같은 오류가 나고 있었습니다.
오류의 내용은 대충 DB와 정상적으로 통신이 이루어 지지 않고 있는 부분인데
/Users/gimgeun-yeong/Works/TEST/fastify_prisma_Test/src/lib/authHelper.ts:13:41
10
11 const duplicateVerifyUser = async (email:string) => {
12 try{
→ 13 const userCount = await db.user.count(
error: Environment variable not found: DATABASE_URL.
--> schema.prisma:10
|
9 | provider = "sqlite"
10 | url = env("DATABASE_URL")
우선 보내주신 파일 중에 .env 파일이 없어 DB연결을 못하고 있었고
그래서 .env 파일을 추가하고 DATABASE_URL을 설정하고
DATABASE_URL="file:./dev.db?connection_limit=1&connect_timeout=30"
FIRST_PWD = '1234'
SECRET_KEY = 'my-secret-key'
HASH_ROUND = 10
ACCESS_TOKEN_EXPIRES = '60m'
REFRESH_TOKEN_EXPIRES = '7 days'다음으로 다음 명령어를 이용해 DB를 마이그레이션하고 난 후
npx prisma migrate dev --name init
서버를 재실행 한 후에는 보내주신것과 같은 오류가 발생하지 않고 정상적으로 로그인이 가능했습니다 .
이부분 참고해서 다시한번 해보시기 바랍니다.
참고로 개발중에서 DB와의 오류를 알기 위해서는 service에서 try catch로 오류를 걸러내는 부분에서 catch에 throw전에 console로그로 error를 확인 할 수 있습니다.
이부분 참고해서 오류를 확인해 보시기 바랍니다.
만약 해결되지 않는다면 다시한번 문의 주시기 바랍니다 .
감사합니다.
교재(3쇄)와 강의 내용 문의
0
25
2
코드 질문
0
19
1
call stack 표현이 잘못표현된것이 아닌가요?
0
56
2
전자책으로 구매인증 가능할까요?
0
72
1
이제 인프런에서 강의 더 안산다. 후져....
0
41
1
소스코드 어디서 다운받아요?
0
52
5
4주차 미션 게시판이 안보여요~
0
46
2
eas 빌드가 엄청 오래걸려서..
0
58
2
수강완료 후 문의 드립니다.
1
47
2
27강 Context내 RSC 사용 관련 문의
0
80
3
혹시 다음 강의 제작 예정된 것들이 있을까요?
0
78
1
에러 질문드립니다
0
62
2
1강 질문
0
68
2
prisma migrate 오류
0
205
3
401 not expired token 에러 메세지는 언제 쓰이나요?
0
296
2
Swagger 문서 접근 권한
0
256
1
앱에 refreshToken을 전송할때 궁금한점이 있습니다.
0
351
2
배포-ubuntu에서 문제
0
254
1
openssl 설치후 적용 안되요
0
374
1
comment 기능
0
198
1
Prisma 환경 설정 질문있어요!
0
253
2
TypeError 관련하여 문의드립니다.
0
303
1
똑같이 따라하고 오류나서 다시해보고 다시해보고 올려주신 코드 확인해봐도 계속 에러가 뜨는대요 ㅠ.ㅠ
0
816
1
강좌의 샘플 프로젝트 파일을 올려주시면 좋을 것 같아요.
0
574
2






