如何在无服务器APP

时间:2018-02-22 15:35:11

标签: flask aws-lambda auth0 serverless-framework

我正在尝试构建无服务器的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发送一个请求似乎太过分了。有更好的方法吗?

0 个答案:

没有答案