JWT
API서버 - @jwt_required(optional=True)를 이용한 분기 처리
@jwt_required() 의 기본 동작은 헤더에 token이 없으면 접근이 불가한데, 파라미터 optional에 True를 주면 token이 없어도 접근할 수 있다. 이를 이용해, 분기 처리를 해서 비회원과 로그인 한 회원의 동작을 다르게 하는 API를 만들 수 있다. 영화 리스트를 가져오는 API 코드 회원인 경우 즐겨찾기 정보도 추가해서 가져온다. from flask import request from flask_restful import Resource from mysql.connector import Error from flask_jwt_extended import jwt_required, get_jwt_identity # mysql.connector 를 사용해 만든 MySQL 접속 함수 fr..
Flask에서 JWT 사용하기 (flask-jwt-extended)
1. JWT(Json Web Token) 이해하기 잘 정리된 블로그를 참고하자 JWT에 대해 JWT(JSON Web Tokens)이란? 두 개체에서 JSON 객체를 사용하여 가볍고 정보를 안전성 있게 전달하는 방식 https://tools.ietf.org/html/rfc7519 JWT의 구성요소는? header.payload.signature header 알고리즘과 token 타입으로 nesoy.github.io [WEB] 📚 JWT 토큰 인증 이란? - 💯 이해하기 쉽게 정리 인증 방식 종류 (Cookie & Session & Token) 보통 서버가 클라이언트 인증을 확인하는 방식은 대표적으로 쿠키, 세션, 토큰 3가지 방식이 있다. JWT를 배우기 앞서 우선 쿠키와 세션의 통신 방식을 복습해 inp..
API서버 - Flask JWT를 사용한 로그아웃 API 만들기
1. 로그아웃 API from flask_restful import Resource from flask_jwt_extended import jwt_required, get_jwt # 로그아웃된 토큰을 저장할 set을 만든다. jwt_blocklist = set() class UserLogoutResource(Resource): @jwt_required() def post(self): # print(get_jwt()) jti = get_jwt()['jti'] # print(jti) jwt_blocklist.add(jti) return {'result' : 'success'}, 200 중복을 방지하기 위해 blocklist를 set으로 만들고 메소드를 실행하면 현재의 access_token을 blocklis..
API서버 - Flask JWT를 사용해 로그인 한 유저만 처리하는 API 만들기
전 포스팅에서 회원가입과 로그인 API를 만들었으니, 저번에 만들었던 API를 로그인 했을 때만 사용할 수 있게 바꿔 보겠다. 바꿀 API: https://donghyeok90.tistory.com/177 API서버 - Python MySQL Connector를 이용해 insert하기(POST 메소드) mysql_connection.py 파일 # MySQL에 접속하는 함수 import mysql.connector from config import Config def get_connection(): connection = mysql.connector.connect( host= Config.HOST, database= Config.DATABASE, user= Config.DB_USER, password= C..
API서버 - Flask JWT를 사용한 로그인 API 만들기
0. user 테이블 구조 1. MySQL에 접속하는 함수 # mysql_connection.py 파일 import mysql.connector from config import Config def get_connection(): connection = mysql.connector.connect( host= Config.HOST, database= Config.DATABASE, user= Config.DB_USER, password= Config.DB_PASSWORD ) return connection 2. 비밀번호가 맞는지 체크하는 함수 회원가입 할 때 비밀번호를 단방향 암호화 했기 때문에 복호화 할 수 없으므로, 확인하는 함수도 단방향 암호화해서 같은지 확인한다. # utils.py 파일 from p..
API서버 - Flask JWT를 사용한 회원가입 API 만들기
0. user 테이블 구조 1. MySQL에 접속하는 함수 # mysql_connection.py 파일 import mysql.connector from config import Config def get_connection(): connection = mysql.connector.connect( host= Config.HOST, database= Config.DATABASE, user= Config.DB_USER, password= Config.DB_PASSWORD ) return connection 2. 비밀번호를 암호화하는 함수 비밀번호는 개발자도 파악할 수 없도록 단방향 암호화한다. # utils.py 파일 from passlib.hash import pbkdf2_sha256 from config..