1

我想使用第三方身份验证系统(facebook/google/linkedin)制作单页Web应用程序(前端使用ember.js,后端使用django,处理API的rest框架)。

只关注 google oauth2 我发现这是 oauth2 过程(来自https://developers.google.com/accounts/docs/OAuth2WebServer

在此处输入图像描述

我设法获得了授权码,但我不知道如何用用户数据将其换成访问令牌,并将它们保存到我的数据库中,或者更好的是如何调用 python-social-auth 为我处理此问题,而无需重新加载这页纸。

我还检查了本教程http://psa.matiasaguirre.net/docs/use_cases.html#signup-by-oauth-access-token,但它希望 acces_token 作为参数,而不是身份验证代码。

最好的方法是什么?

4

1 回答 1

2

使用授权代码流时,您的 Web 服务器/应用程序会在用户进行身份验证时收到一个身份验证代码。正如您已经意识到的那样,此特定流程涉及另一个步骤 - 将授权代码交换为访问令牌。

您需要拨打这样的电话以将身份验证代码交换为访问令牌,

POST /o/oauth2/token HTTP/1.1
Host: accounts.google.com
Content-Type: application/x-www-form-urlencoded

code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp7&
client_id=8819981768.apps.googleusercontent.com&
client_secret={client_secret}&
redirect_uri={your_redirect_uri}&
grant_type=authorization_code

请注意,在这个特定流程中,它是一个两步验证 - 验证用户,然后是代表用户拨打电话的应用程序。如果您需要更多信息,请阅读此链接。

于 2014-09-09T04:44:31.210 回答