티스토리 뷰
JWT이란?
json형태로 만들어진 웹 토큰을 좀 더 쉽게 만들 수 있도록 도와주는 라이브러리
registrations_controller에서 JWT세션을 이용해서 토큰 정보를 저장해서 그 정보를 이용해서 api를 사용한다까지 알고 있으면 됨 (쓰는 방법만 정확하게 알면 됨)
사용
=> jwt_session을 이용해서 토큰 정보를 저장하고 그 정보를 이용해 api 사용
Gemfile/
gem 'jwt_sessions' 라이브러리 사용
githup jwt_sessions document 참고
github.com/tuwukee/jwt_sessions
tuwukee/jwt_sessions
XSS/CSRF safe JWT auth designed for SPA. Contribute to tuwukee/jwt_sessions development by creating an account on GitHub.
github.com
JWT 사용하여 로그인하기
jwt_session 파일에서 설정 할 수 있음
rails c(console) 레일즈 콘솔창 사용하기
- 콘솔 종료 = exit
먼저 로그인 할 수 있는 사용자 계정 생성
User.create(email: 'yumyum@cakeshop.com', password: 'password')
redis-cli
redis 클라이언트로 접속
접속 거절 오류 발생
문제 해결 시도
ps -ef | grep redis
redis가 down되어 있는지 확인
redis-cli -h 로컬아이피
로 하면 된다해서 쳤으나 역시 접속 거절
임시 해결
redis-server 로 서버 켠 후, 다시 새 터미널 열기로 임시적 해결
로그인
redis-cli redis 클라이언트 접속
keys * => key값 체크 (초기 비어있음)
Postman을 이용해서 api요청을 보내고 그에 대한 응답 수신 가능
토큰 발급 받는 방법
{{url}}/login 경로에 POST로
email / password 입력 후 send 요청 => csrf와 token 발급 -> 복사 붙여넣기
환경 변수 설정 방법
눈 모양 클릭 -> Edit -> 변수 설정 -> url, csrf, token 저장
postman 사용하여 post로 url 보내고
다시 key입력해서 로그인 계정 토큰 확인
item 요청보내기
get방식은 csrf 없어도 받아오기 가능
원하는 데이터만 가져올 수 없음 -> serializer 사용
gemfile/ gem 'panko_serializer' 라이브러리 쓰고 있음
시리얼라이저 만들기
rails g serializer item
여러개의 아이템에 대한 시리얼라이저
rails g serializer item_each
만들어뒀던 컨트롤러 다 지우기
rails d contorller items
=> 모델, 마이그레이션 다 적용됨
rails g api items
어플리케이션이 아닌 ApiController 상속받기
api 컨트롤러를 모든 컨트롤러에서 상속받고 있으므로 다른 상속받고있는 클래스에서도 사용 가능
- serialize :하나의 오브젝트 보내줄때 사용
- each_serialize: item.all item.where : 여러개의 아이템
each_serialize 이후 필요한 정보만 가지고 오게됨
rails g serializer option_each 여러 개의 옵션
아이템 생성(create) post방식으로 보내줌
'루비온레일즈' 카테고리의 다른 글
상품 리스트 페이지에 각 아이템 가져오기 (0) | 2021.04.30 |
---|---|
[Error] 레일즈 서버 A server is already running 오류 / redis 서버 오류 해결 (0) | 2021.04.24 |
[Ruby On Rails] M:N Relation & Like(찜) model 만들기 (0) | 2021.04.24 |
[Ruby On Rails] 레일즈 서버 시작 & 초기 세팅 & model 만들기 (0) | 2021.04.24 |
[Ruby On Rails] Restful API와 Serializer (2) | 2021.04.19 |