安全.py
从用户导入用户 从 werkzeug.security 导入 safe_str_cmp 用户=[用户(1,'abc','abc')] username_mapping = {u.username:u for u in users} userid_mapping = {u.uid: u for u in users} def 验证(用户名,密码): 用户=用户名映射.get(用户名,无) 如果用户和 safe_str_cmp(user.password , 密码): 回头客 def 身份(有效负载): user_id=payload['身份'] 返回 userid_mapping.get(user_id,None)
应用程序.py
从烧瓶进口烧瓶,请求 从 flask_restful 导入 Api,Resource 从 flask_jwt 导入 JWT,jwt_required 从安全导入身份验证,身份 app = Flask(__name__) app.security_key='酷' api = API(应用程序) jwt = JWT(app,authenticate,identity) #创建新端点 /auth
上述 JWT 函数的 /auth POST 方法显示 500 Internal server error 并给出以下错误日志
回溯(最近一次通话最后): wsgi_app 中的文件“/usr/lib/python3.7/site-packages/flask/app.py”,第 2292 行 响应 = self.full_dispatch_request() 文件“/usr/lib/python3.7/site-packages/flask/app.py”,第 1815 行,在 full_dispatch_request rv = self.handle_user_exception(e) 文件“/usr/lib/python3.7/site-packages/flask_restful/__init__.py”,第 273 行,在 error_router 返回 original_handler(e) 文件“/usr/lib/python3.7/site-packages/flask/app.py”,第 1718 行,在 handle_user_exception reraise(exc_type, exc_value, tb) 文件“/usr/lib/python3.7/site-packages/flask/_compat.py”,第 35 行,在 reraise 升值 文件“/usr/lib/python3.7/site-packages/flask/app.py”,第 1813 行,在 full_dispatch_request rv = self.dispatch_request() 文件“/usr/lib/python3.7/site-packages/flask/app.py”,第 1799 行,在 dispatch_request 中 return self.view_functions[rule.endpoint](**req.view_args) _default_auth_request_handler 中的文件“/home/iamabhi67/.local/lib/python3.7/site-packages/flask_jwt/__init__.py”,第 125 行 access_token = _jwt.jwt_encode_callback(身份) _default_jwt_encode_handler 中的文件“/home/iamabhi67/.local/lib/python3.7/site-packages/flask_jwt/__init__.py”,第 62 行 有效载荷 = _jwt.jwt_payload_callback(身份) _default_jwt_payload_handler 中的文件“/home/iamabhi67/.local/lib/python3.7/site-packages/flask_jwt/__init__.py”,第 53 行 identity = getattr(identity, 'id') 或 identity['id'] AttributeError:“列表”对象没有属性“id”