python - 使用 Rauth 为 vk.com 实现 OAuth2

标签 python flask oauth-2.0 vk rauth

我正在尝试使用 Rauth 为 vk.com 提供商实现 Oauth2 授权,但遇到以下问题:

据我所知,无法通过vk.com api调用获取用户的电子邮件地址,但它会以json格式发送带有access_token的电子邮件地址。

我的问题是:我不知道如何从 Rauth 的“session”对象中获取它,有一个 access_token 字段,但无法获取电子邮件地址。

这是代码:

def callback(self):
    def decode_json(payload):
        return json.loads(payload.decode('utf-8'))
    if 'code' not in request.args:
        return None, None, None
    oauth_session = self.service.get_auth_session(
        data={'code': request.args['code'],
              'grant_type': 'authorization_code',
              'redirect_uri': self.get_callback_url()},
        decoder=decode_json
    )
    me = oauth_session.get("some call to vk.api").json()

感谢您的帮助!

最佳答案

让我解释一下。实际上,Vkontakte 将返回 email 以及访问 token (如果提供)。

您不需要使用oauth_session.get,因为它确实会发出新请求,但当您获得访问 token 时,它已经完成了。尝试使用 oauth_session.email 获取对象属性。

附注您可以使用 get_raw_access_token 查找电子邮件。

关于python - 使用 Rauth 为 vk.com 实现 OAuth2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45763016/

相关文章:

python - Celery - 异步任务链

python 获取表单数据 这是怎么回事?

python - 如何使用适用于 Python 的 oauth2 为 Oauth 提供程序指定参数?

c# - 使用 Oauth2 的 HTTP 请求到 Google App Script Web App

python - 正则表达式 python : match multi-line float values between brackets

Python提示用户有回声和密码没有回声

python - Flask Python 模型验证

azure - Azure API 管理和 Oauth2 的 API 权限

python - 绘制 Pandas DataFrame 的累积返回

python - Pandas 将 FALSE 和 TRUE 的行替换为 False 和 True