使用Rauth为vk.com实施OAuth2

时间:2017-08-18 18:33:46

标签: 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()

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

让我解释一下。实际上,Vkontakte会返回email以及访问令牌,以防它被提供。

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

P.S。您可以使用get_raw_access_token找到电子邮件。