먼저 다운로드 python jwt
코드 :
import cgi
import datetime
import webapp2
from base_handler import BaseRequestHandler, login_required
from webapp2 import Route
from models import Customer
from lib import jwt
import logging
def login_required(fn):
def check(self, *args, **kargs):
auth = self.request.headers.get('Authorization')
login_info = jwt.decode(auth, 'secret', algorithms=['HS256'])
# your verify login token here
logging.error(login_info)
# verify success
fn(self, *args, **kargs);
return check
class LoginHandler(BaseRequestHandler):
def login(self):
username = self.request.get('username')
password = self.request.get('password')
if Customer.login(username, password) is True:
encoded = jwt.encode({'username': username}, 'secret', algorithm='HS256')
self.response.write({'token': encoded})
return
self.response.write('login unsuccess', status=404)
class APIHandler(BaseRequestHandler):
@login_required
def get(self):
self.response.write('product found')
app = webapp2.WSGIApplication([
Route('/login', handler=LoginHandler, handler_method='login', name='login', methods=['POST']),
('/', APIHandler)
], debug=True)
참고 : 사용 postman 수 있고 (토큰은 로그인 요청에서 얻을 수 있습니다) 헤더를 추가 테스트 클라이언트에 대한
당신에게 수 "내 백엔드 서버 서명을하고 OAuth 요청이 끝날 때 사용자 이름을 보내라"는 의미에 대해 자세히 설명해주십시오. – Nick
그리고 GAE에서 노드를 사용하고 있기 때문에 사용자 정의 런타임이나 managedVM을 다루고 있다고 가정합니다. – Nick