我正在尝试构建无服务器的Flask APP。要登录用户,我使用auth0.com。
在用户登录后,我获得了一个访问令牌,我将一个帖子请求发送到我的烧瓶后端,在那里我交换了用户信息的令牌:
@app.route('/callback', methods=['POST'])
@cross_origin()
def callback_handling():
resp = request.get_json()
url = 'https://' + AUTH0_DOMAIN + '/userinfo'
headers = {'authorization': 'Bearer ' + resp['access_token']}
r = requests.get(url, headers=headers)
userinfo = r.json()
# Store the tue user information in flask session.
session['jwt_payload'] = userinfo
session['profile'] = {
'user_id': userinfo['sub'],
'name': userinfo['name'],
'picture': userinfo['picture']
}
完成此操作后,我将用户重定向到其信息中心。在那里,我发送第二个帖子请求来获取用户个人资料,如下所示:
@app.route('/profile', methods=['POST'])
@cross_origin()
def user_profile():
if 'profile' in session:
return jsonify({'profile':session['profile']})
else:
return jsonify({'profile':"Not logged in"})
第二个函数始终返回{'profile':"Not logged in"}
。
所以我想知道最好的方法是什么。我是否应该总是发回auth0
令牌,向他们发送请求以询问谁是用户然后返回他的数据?每次我需要返回一些数据时,总是向auth0发送一个请求似乎太过分了。有更好的方法吗?