티스토리 뷰

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방식으로 보내줌

댓글