gpt4 book ai didi

python - 如何在 Google App Engine(Python) 上使用 JWT 标记用户名?

转载 作者:太空宇宙 更新时间:2023-11-03 17:58:23 25 4
gpt4 key购买 nike

我正在尝试让我的后端服务器签名并在 OAuth 请求结束时发送用户名。我尝试遵循的示例使用此包( https://www.npmjs.com/package/express-jwt ),但我的后端位于 Google App Engine 中。所以,我想知道如何在 App Engine/webapp2 框架内实现相同的功能(使用一些 secret 对用户名进行签名)?

最佳答案

首次下载python jwt到项目的文件夹lib

代码:

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并添加 header ( token 是从登录请求获取的)

关于python - 如何在 Google App Engine(Python) 上使用 JWT 标记用户名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28140842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com