일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 리액트
- #패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #한번에끝내는Node.js웹프로그래밍초격차패키
- 몽구스 쿼리
- 리액트리덕스
- useRef
- 직장인인강
- 패캠챌린지
- 한번에끝내는Node.js웹프로그래밍초격차패키지
- Redux
- 해시태그
- event.keycode
- 줄바꿈 방지
- object
- Object에 변수 지정
- 패스트캠퍼스
- keyCode == 13
- keycode ==8
- 한번에끝내는
- mongoose query
- #패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #한번에끝내는Node.js웹프로그래밍초격차패키지
- React
- 자동 높이 조절
- 패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #한번에끝내는Node.js웹프로그래밍초격차패키지
- 패스트캠퍼스후기
- react-redux
- 패스트캠퍼스 후기
- objectid
- 해시태그 구현
- 직장인 자기계발
- 직장인자기계발
- Today
- Total
꾸준한프로그래밍
[개발 노트 1일차] passport.js 이용 로그인, 로그아웃 구현 본문
[오늘 해낸 것]
-깃 계정 새로 파서 연동 다시하기
- sessions 스키마에 저장된 값을 적재적소에 사용하기(sessions의 값 불러오기)
- 로그아웃 하기
- 원래는 jwt를 통해 토큰화 되어있고, 그걸로 auth를 관리했었는데 이를 passport에 관한걸로 바꾸기
- console.log 로 디버깅 하기
- users.save(mongoose 오류) 해결.(처음에만 save, 그다음에는 findOneAndUpdate를 쓰자
[어려운 것]
- 깃 계정 연동할때 기존 계정과의 충돌이 일어난 것
- sessions에 저장된 데이터를 어떻게 불러올지 몰랐던것
- 로그아웃 원리를 몰랐던 것
- passport 자체가 이해가 안갔던 것
- userSchema에서 원래는 _id 값을 줬었는데 에러가 떴었다. 지우니 해결(그렇다고 _id값이 안만들어진건 아니였다)
본격적으로 기록을 해보려고 한다. 그래서 큰마음 먹고 깃 계정도 새로 팠는데 자꾸 vscode상에서 에러가 떴다. git 어쩌구 permission denied to whdgus380(예전 계정) 하면서..
처음 방법은
git remote -v 명령어를 통해 원격 저장소를 찾아내고 git rm 으로 지우는 것이다. 한 세네번 해봤는데 되지 않자 다른방법을 쓰게 되었다. 그것은 바로 맥용 응용프로그램 '키체인 접근'에 들어가 검색에 git 을 검색하고 git 이 들어간 모든 폴더를 지우는 거였다. 결과는 성공적!!!!
한 한시간 헤매서 그런지 진이 좀 빠진다...
그리고 드디어 login과 logout을 passport를 통해 해냈다.
passport.serializeUser 을 통해 값을 저장했을때 나는 users라는 schema에 들어가게 하고 싶었는데 계속 sessions가 따로 만들어졌다. 이를 어떻게 연동할지를 몰라 계속 검색했었는데, sessions라는 스키마에 값이 저장이 되는 순간 req._passport에 저장이 되더라.. 그리고 req.logout을 하면 req._passport에서 세션 값이 사라진다. 환호했다!!!!
그래서 if(!req._passport.session) 로 원래는 로그아웃된건지 아닌지 판별하려고 했지만 {} 라는 빈 객체가 있어서 그런지 판별이 되지 않았다. 그래서 length를 쓰는 방법으로 결국 구현해 냈다.
위는 passport.use 사용하는 방법이다. passport 공식 문서에는 에러처리가 다 done(null,false,{message : 어쩌구} 형태로 되어있었는데 먹통이였다. 그래서 console.log로 다 바꿔줬는데 디버깅이 훨씬 쉬웠다.
주말까지 소셜로그인까지 구현하려면 정말 바쁘게 살아야겠다. 그래도 오랜 시간 passport로 고민한 덕에 몇발자국 앞으로 나아간거 같긴 하다
'개발 오답노트' 카테고리의 다른 글
[CSS] 줄바꿈 방지하는 코드 (0) | 2022.01.14 |
---|---|
string을 mongoose ObjectId로 바꾸고 싶을때 (0) | 2022.01.13 |
[js] 리스트 내에 undefind를 제거하는 방법(filter) (0) | 2022.01.11 |
Object의 key 값에 변수 지정하는 법 (0) | 2022.01.07 |