본문 바로가기

API27

JWT 토큰 설정후 API 수정 이 부분에서 user_id를 처리하는 부분이 없다 우리는 그것을  API 수정헤더에서 처리 해야한다   히든을 클릭해보면 자동 생성되어있는 키들이 있는데 일단 이건 접어두고    키 부분에는Authorization라고 적어주고  밸류 부분에는Bearer 라고 적고 한칸 띄어준뒤로그인하면 생성되는 토큰을 뒷부분에 적어준다 서버 py 수정 해당하는 함수 위에@jwt_required()을 추가하여토큰이 필요한 작업임을 알린다 user_id = get_jwt_identity()DB 연결후 헤더에 JWT 토큰이 있으니위의 문구를 추가하여 토큰 정보를 받아온다 그리고 쿼리문도 수정해주고쿼리문에 맞게 record도 수정해준다insert into(user_id 추가)value(%s 추가)record(user_id 추가.. 2024. 5. 22.
로그인 API 우선 API 설정부터 시작하자 API 설정로그인을 하려 한다고 할때 정보를 입력할테니HTTP 메소드는POST로 해야한다 경로는 user의 login으로 하면 되겠다 그리고 입력하는 정보로는 보통의 id가 되는 유니크한값 이메일과 패스워드만 한다  app.py 설정 api.add_resource(UserLoginResource, '/users/login') 평소와 같이 경로를 적어주고 user.py 설정 회원가입 때와는 다른 클래스로 설정한다class UserLoginResource(Resource) : def post(self) : # 1. 클라이언트로부터 데이터 받아온다 data = request.get_json() 1. 입력받은 이메일과 패스워드가 존재하는.. 2024. 5. 22.
회원가입 API 우선 회원가입이니 유저 테이블을 만들어야 한다 간단히유저이름과 이메일 패스워드를 받고활성화인지 아닌지는 따로 체크가입시간과 수정시간을 따로 체크 그리고 이제 API 설정부터 하자 새로운 데이터가 들어가니 POST경로는 user의 register로 하자 그리고 이제 1. app.py 설정api.add_resource(UserRegisterResource, '/users/register') 추가 해주고 2. user.py 설정 class UserRegisterResource(Resource) : def post(self) : # 1. 클라이언트가 보낸 데이터 받아준다 data = request.get_json() 클라이언트가 보낸 데이터를 일단 받은 뒤 2 - 2. 데이터가 모.. 2024. 5. 22.
회원가입, 로그인시 필요한 인증 토큰 라이브러리 인증토큰이라 함은 JWT 라고 하는데이는JSON Web Token을 의미한다  회원가입과 로그인시에보안 및 사용자 인증 관리를 간편하고 효율적으로 처리하기 위해서사용되는데크게 아래와 같은 이유로서 사용된다 1. 상태 비저장 인증 토큰 자체에 사용자의 인증 정보와 권한이 포함되기 때문에 서버는 매번 데이터베이스를 조회하지 않아도 되고이는 서버의 부하를 줄이고, 확장성을 높이기 때문이다 2. 안전한 정보 교환 JWT는 기본적으로 서명되어 있어 데이터의 무결성을 보장하기에 토큰이 발급된 후 변경이 되지 않았음을 확인할 수 있다 3. 발행된 토큰은 클라이언트가 저장 사용자가 여러 브라우저 탭을 열거나새로 고침을 하더라도 세션을 유지할 수 있게 해주며, 클라이언트 측에서 쉽게 접근할 수 있기 때문에API 호출 시.. 2024. 5. 22.
회원가입,로그인시 필요한 라이브러리 패스워드 해싱, 이메일형식 유효검사 데이터베이스 상호작용과 비밀번호 해싱pip install psycopg2-binarypip install passlib    PostgreSQL 데이터베이스와 상호 작용하기 위한 psycopg2-binary 패키지 비밀번호 해싱을 위한 passlib 패키지 psycopg2-binary 사용법import psycopg2# 데이터베이스에 연결connect = psycopg2.connect(    dbname="your_db",    user="your_user",    password="your_password",    host="your_host",    port="your_port")# 커서를 생성cursor = connect.cursor() 이후 커서로서 역할 수행  passlib 사용법from pas.. 2024. 5. 21.
게시글 비공개,공개하는 API 테이블을 만들 당시is_publish 라는 컬럼을 만들어기본값을 0을 주어 설정하지않으면 비밀글이 기본값으로 만들어져있어임시저장으로 하게끔 만들어져 있다 이것을  수정하는 API를 만들어보자API 설정  HTTP 메소드는CRUD 중 수정으로 해야하니Update인 PUT로 설정해주고 경로에는 특정 id에 접근을 해야하니 숫자는 있어야하고 추가 경로를 적어주자 그리고  파이썬으로 돌아가자  1. app.py에 추가 작성api.add_resource(RecipePublishResource, '/recipes//publish')  2. recipe.py에 추가작성class RecipePublishResource(Resource) : 3. PUT설정, DELETE 설정 PUT 하나만 설정 하게 되면임시저장으로 되.. 2024. 5. 21.