RestFul API 7

[RestFul API] 회원가입 / 로그인 API에서, 토큰 생성해서 처리하는 방법

클라이언트와 서버간의 인증토큰 흐름- 회원가입 / 로그인 시 토큰 발행- 클라이언트한테 받은 회원정보가 DB에 저장되고, DB에서 정보를 다시 보낼 때, 유저 아이디가 생성된다. 보안상 이 유저아이디를 JWT로 암호화 해야 한다.- 발행된 토큰을 클라이언트에서 저장하고, 이것을 인증이 필요한 API 호출에 사용한다.- 회원가입 시 생긴 토큰 : 회원가입 후 로그아웃하기 전까지 사용, 로그아웃하면 토큰이 만료된다.- 로그인 시 생긴 토큰 : 재 로그인 시 사용  회원가입 / 로그인 API에서, 토큰 생성해서 처리하는 방법- create_access_token( ) : 토큰 생성 함수 토큰 생성 라이브러리 불러오기from flask_jwt_extended import create_access_token   ..

RestFul API 2024.05.22

[RestFul API] Flask에서 JWT 설치방법 및 설정방법

JWT(JSON Web Token)- 클라이언트와 서버간에 정보를 안전하게 전송하기 위한 인증토큰- 보안상 내 아이디로 로그인한 기기마다 인증토큰이 달라서, 기기마다 로그아웃을 별도로 할 수 있다. Flask에서 JWT 설치 및 설정방법1. VSC-cmd 에 라이브러리 설치pip install flask-jwt-extended    2. VSC config.py 에 JWT 관련 변수 셋팅 JWT_SECRET_KEY  : 설정값으로 노출되면 안됨. JWT_ACCESS_TOKEN_EXPIRES : 로그인 후 자동 로그아웃 여부,  False = 자동 로그아웃 설정 안함, True = 자동 로그아웃 설정 PROPAGATE_EXCEPTIONS : 디버깅, JWT에 문제가 발생하면 알려달라는 의미 class Co..

RestFul API 2024.05.22

[RestFul API] Python MySQL Connector 특정값 삭제(Delete)하기

메인 app.py 코드 from flask import Flaskfrom flask_restful import Apifrom resources.recipe import RecipeListResource, RecipeResourceapp = Flask(__name__)api = Api(app)# 경로(path)와 리소스(API 코드)를 연결한다.api.add_resource( RecipeListResource  , '/recipes')api.add_resource(RecipeResource, '/recipes/')# : flask 프레임워크 문법if __name__ == '__main__' :    app.run()    클라이언트가 요청한 값을 DB에서 DELETE(삭제)하는 코드는 아래와 같다.fro..

RestFul API 2024.05.21

[RestFul API] Python에서 MySQL DB에 데이터 저장(POST) 하는 방법

메인 app.py 코드from flask import Flaskfrom flask_restful import Apifrom resources.recipe import RecipeListResourceapp = Flask(__name__)api = Api(app)# 경로(path)와 리소스(API 코드)를 연결한다.api.add_resource( RecipeListResource  , '/recipes')if __name__ == '__main__' :    app.run()    DB에 데이터를 POST(저장)하는 코드는 아래와 같다.라이브러리에만 저장을 했을 경우, 오류가 생기면 데이터가 전달되지 않을 수도 있다.그래서 DB에 저장할 정보는 try - except 구문에 저장해 준다.from flask..

RestFul API 2024.05.21

[RestFul API] Config 파일 생성하여 연동하기, Github 리포지토리 private 변경하기

Config File: 독립적으로 관리할 수 있기 때문에 보안 관련 정보 저장에 유용하다. Config 파일 생성하여 연동하기, Github 리포지토리 private 변경1. VSCode에서 MySQL에 연결할 파일 하나 만들어 주기- mysql_connection.py    2. 연결 라이브러리를 실행해 준다.import mysql.connector    3.  MySQL에 접속하는 함수안에 host, database, user, password 정보를 넣어줘야 한다.그런데 이러한 프라이빗한 내용은 나만 볼 수 있어야 하기 때문에, 파일을 따로 만들어 저장한다.     4. 전용 DB 유저 파일  : Config.py 파일 만들기     5. Config.py 파일에서 class 만들어 정보를 넣어준다..

RestFul API 2024.05.21

[RestFul API] 가상환경 설정 + Flask 프레임워크와 Flask-restful 라이브러리 설치

RestFul API 서버 개발을 위해 가상환경을 만들어 준다.Flask : Python 기반의 마이크로 웹 프레임워크로 간단한 웹 사이트나 API 서버를 만들때 사용 Flask-RestFul : Flask 웹 프레임워크에서 RESTful API를 쉽게 구현할 수 있도록 도와주는 확장 라이브러리    가상환경 설정 & Flask 프레임워크와 Flask-restful 라이브러리 설치1. 아나콘다 프롬프트에서, 람다용 파이썬 가상환경 만들기$ conda create -n 가상환경이름 python=3.10 - AWS Lambda : AWS에서 제공하는 serverless(실제 서버는 있지만, 없는것 처럼 보이는) 컴퓨팅 서비스로, 서버없이 코드를 실행할 수 있다.- 가상환경 이름을 lambda_310 이라고..

RestFul API 2024.05.20

[RestFul API] RestFul API(URI, HTTP Method, Message)

RestFul API는, HTTP 프로토콜을 사용하여 자원을 CRUD(Create, Read, Update, Delete) 할 수 있는 인터페이스를 제공 RestFul  API 알아보기API(Application Programming Interface) 란?- 응용 프로그램에서 사용할 수 있도록 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스- API를 통해 소스 및 DB에는 접근하지 못하게 하고 해당 프로그램을 사용할 수 있도록 기능을 제공하게 하는 것- 윈도우즈 os가 있고, 그 위에서 윈도우가 돌아가도록 하는 함수들- 요즘은 의미가 더 확장되어 서버가 제공하는 기능을 모두 API 라 한다.(앱, 웹, 카카오톡, 유튜브..)  REST(Representational St..

RestFul API 2024.05.20