본문 바로가기

백엔드/API13

[API] 인증토큰 JWT, 로그인과 로그아웃: JWTManager, create_access_token, token_in_blocklist_loader 회원가입하거나 로그인 할때, 유저 정보를 양방향 암호화해서 처리하는 JWT를 사용한다. 관련 웹사이트: https://flask-jwt-extended.readthedocs.io/en/stable/ Flask-JWT-Extended’s Documentation — flask-jwt-extended 4.4.1 documentation flask-jwt-extended.readthedocs.io 먼저 JWT 라이브러리를 다운로드 한다. pip install flask-jwt-extended config.py 파일을 생성하여 Config코드를 작성한다. class Config: JWT_SECRET_KEY = 'yhacademy1029##hello' # 절대 노출시키면 안되는 키 JWT_ACCESS_TOKEN_.. 2022. 6. 20.
[API] 로그인 API: check_password POST 메소드에 select를 사용하여 로그인하는 API를 만들자. # check_password을 사용한다. class UserLoginResource(Resource): def post(self): # 클라이언트로부터 body로 넘어온 데이터를 받는다. data = request.get_json() # { # "email": "abc@naver.com", # "password": "123456" # } try: connection = get_connection() # 이메일로 DB의 데이터를 가져온다. query = '''select * from user where email = %s;''' record = (data['email'], ) cursor = connection.cursor(dictio.. 2022. 6. 20.
[API] 유저정보 저장: 비밀번호 암호화, 이메일 형식 확인, 예외처리 앱을 개발할때 개발자가 사용자들의 비밀번호를 알수없도록 암호화만 가능하게 만들어야 한다. (단방향) 이때 암호화만 하되 복호화는 하지않는것이 hash다. 먼저 사용할 psycopg2-binary와 passlib라이브러리를 설치하자. pip install psycopg2-binary passlib 비밀번호 암호화를 위한 파이썬 파일을 만들어 코드를 작성한다. from passlib.hash import pbkdf2_sha256 # 원문 비밀번호를 암호화 하는 함수 (암호화만 하되 복호화는 하지않는것이 해쉬다.) def hash_password(original_password) : salt = 'yh*hello12' password = original_password + salt password = pbkd.. 2022. 6. 20.
[API] 파이썬에서 MySQL 연결 후 Restful API 생성 DB에서 테이블을 만든다. 레시피 테이블 생성: 유저 테이블 생성: 그 후 계정 만드는 코드를 차례로 입력한다. use mysql; create user 'recipe_user'@'%' identified by 'recipe1234'; grant all on recipe_db.* to 'recipe_user'@'%'; # 유저 이름과 사용할 비밀번호를 설정한 후 다음 코드에서 해당 유저에게 해당 DB의 모든 권한을 부여한다. 작업환경인 비쥬얼 스튜디오 코드(이하 코드)에서 DB와 연결하기 위해 mysql-connector-python를 설치한다. 설치코드: pip install mysql-connector-python 연결을 위한 파이썬 파일을 생성 후 get_connection 함수를 작성한다. imp.. 2022. 6. 17.
[API] API(Application Programming Interface)와 postman API는 OS가 제공하는 기능을 제어할수있게 만든 인터페이스다. API를 활용하면 동시 개발이 가능하며 그만큼 시간 단축할수있다. RestFul API(Representational State Transfer)는 API에 URI를 부여해 활용하는 방법이며 아래 3가지를 만족하면 REST라고 할수있다. 자원(Resource): URL 주소가 있어야 한다. 행위(Method): 요청하고 응답하는 메소드가 있어야 한다. (GET/POST/DELETE/PUT) 표현(Message): JSON (JavaScript Object Notation), XML등의 표현 # 메소드는 가져오기(GET), 보내기(POST), 삭제하기(DELETE), 업데이트(PUT) 등이 있다. # JSON은 딕셔너리 형태와 큰 따옴표로 표.. 2022. 6. 17.