토막글
2022-01-15 TIL passport.authenticate 문제 해결
케굴
2022. 1. 15. 23:00
다음 git hub의 소스 코드를 이용하여 passport local 방법으로 회원가입을 구현하고 있는데, 아무리 해도 로그인이 되지 않는 문제가 발생했다.
https://github.com/passport/todos-express-local
이유1 실제로 db 에 저장되지 않음
먼저 첫번째 이유는 회원가입시 실제로 데이터가 저장되지 않았다.
이유는 사실 다른 코드를 이용하여 적용하는 과정에서 매개변수를 정확하게 바꾸지 않아 발생하였다.
친구와의 공동 프로젝트를 하기 때문에 dbsqlite를 사용했다.
그런데 dbsqlite는 maria db와 달리 테이블 속 데이터를 확인하기 어려워 꽤나 고생했다.
이 문제는 vscode의 sqlite viewer 확장 프로그램을 이용하여 해결할 수 있었다.
이걸 사용하면 db.sqlite3 파일의 내용을 볼 수 있다 . 강추!!
2. form에 username과 password를 다른 이름으로 보냄
그렇게 자바 스크립트 부분을 고치러 다녔지만.. 의외로 문제는 html 파일의 form에서 문제가 일어났다.
나는 아이디를 id 라는 변수를 사용해서 name 값 또한 id로 바꿔놓았는데 그게 문제였다..
html(lang="en")
head
title Trade
link(rel="stylesheet", href="https://unpkg.com/mvp.css")
body
h3 로그인
form(action="/login/password" method="POST")
input(type="text", name ="username", placeholder="id")
input(type="password", name ="password", placeholder="password")
button(type="submit") 로그인
div
p or
a(href='/users/new') Create Account
원하는 name을 사용하기 위해서는 아래와 같이 설정해 주어야 한다.
passport.use(new LocalStrategy({
usernameField: '설정',
passwordField: '설정'
}, function (username, password, done) {
}
));
생활코딩에서 배웠는데....
이걸로 이렇게 고생할줄이야 ..
어쨌든 덕분에 오늘 회원가입 , 로그인 완성!
이래서 언제 완성하나 ..