app.py 코드 수정하기
# 트윗올리기
@app.route('/tweet', methods = ["GET","POST"])
@login_required # 인증 데코레이터 추가
def tweet() :
user_tweet = request.json
user_tweet['id'] = g.user_id # flask 객체 g
tweet = user_tweet['tweet']
if len(tweet) > 300 :
return '300자를 초과했습니다', 400
insert_tweet(user_tweet)
return " " , 200
# 팔로우
@app.route('/follow', methods = ["GET","POST"])
@login_required # 인증 데코레이터 추가
def follow() :
payload = request.json
insert_follow(payload)
return ' ', 200
# 언팔로우
@app.route('/unfollow', methods = ["GET","POST"])
@login_required # 인증 데코레이터 추가
def unfollow() :
payload = request.json
insert_unfollow(payload)
return " ", 200
1. tweet 엔드포인트에 인증 데코레이터를 추가해서 http 요청
http -v POST 127.0.0.1:5000/tweet tweet=‘hello world’
로그인이 되어있지 않아서 사용자 확인을 할 수 없어 401 응답을 리턴한다.
그러므로 로그인 인증 절차를 거친 후 access_token을 생성해야 한다.
2. 회원가입 후 인증 하기
2-1. 우선 sign-up 엔드포인트로 다음과 같이 값을 설정하여 회원가입을 해줬다.
http -v POST http://127.0.0.1:5000/sign-up name=한여름\
email=summer@gmail.com\
password='test1234'\
profile='iam summer'
2-2. 설정한 이메일과 비밀번호로 로그인을 한다.
http -v POST 127.0.0.1:5000/login email=summer@gmail.com password='test1234'
accces_token이 잘 생성되었다.
2-3. tweet 엔드포인트 실행
인증 절차 후 생성된 access token을 http 요청의 authorization의 헤더 값으로 지정하여 http 요청 전송
http -v POST 127.0.0.1:5000/tweet tweet='hello world'\
"Authorization:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjo2LCJleHAiOjE2NTgyMzA4MzN9._1GP0QnqPYSS3l18epnnabm0Ytf1Jqjj4Pj-554qfi4"
tweet 엔드포인트가 잘 실행되었다.
'Python > Flask' 카테고리의 다른 글
[미니터] Test - 테스트 자동화 (0) | 2022.07.19 |
---|---|
[미니터] 인증 구현시 ValueError : Invalid salt과 AttributeError: 'str' object has no attribute 'decode'에러 (0) | 2022.07.18 |
[미니터] 인증 - 인증 decorator 함수 (0) | 2022.07.15 |
[미니터] 인증 - sign-up, login (0) | 2022.07.14 |
[미니터] 인증 (0) | 2022.07.14 |