如何使用AWS Cognito与Boto3和OAuth获取配置文件数据?

时间:2018-03-09 02:07:33

标签: amazon-web-services oauth boto3 aws-cognito

好的,所以在用户登录后,我想获取他们的个人资料数据。所以我尝试这样做的方式是通过boto3.client(' cognito-idp')。get_user但它一直在返回:

  

NotAuthorizedException:调用GetUser操作时发生错误(NotAuthorizedException):访问令牌没有必需的范围

据我所知,我已经将每一个内置在Cognito范围内,我不确定它为什么不起作用。任何帮助将不胜感激!

我的身份验证脚本

scope = request.args.get(
    'scope',
    'email phone profile openid')
sumukey = make_session(scope=scope.split(' '))
authorization_url, state = sumukey.authorization_url(AUTHORIZATION_BASE_URL)
session['oauth2_state'] = state
return redirect(authorization_url)

我的回归

sumukey = make_session(state=session.get('oauth2_state'))
token = sumukey.fetch_token(
    TOKEN_URL,
    client_secret=OAUTH2_CLIENT_SECRET,
    authorization_response=request.url)
session['oauth2_token'] = token
return redirect(url_for('.index'))

当前尝试获取数据

client = boto3.client('cognito-idp')
response = client.get_user(
    AccessToken=session['oauth2_token']['access_token']
)
return str(jsonify(response))

make_session

return OAuth2Session(
    scope=scope,
    client_id=OAUTH2_CLIENT_ID,
    token=token,
    state=state,
    redirect_uri=OAUTH2_REDIRECT_URI,
    auto_refresh_kwargs={
        'client_id': OAUTH2_CLIENT_ID,
        'client_secret': OAUTH2_CLIENT_SECRET,
    },
    auto_refresh_url=TOKEN_URL,
    token_updater=token_updater)

0 个答案:

没有答案