【发布时间】:2014-11-22 23:44:31
【问题描述】:
我正在使用django-all-access 为 Facebook、Twitter 和 LinkedIn 实施 OAuth 身份验证。 Facebook 和 Twitter 运行良好,LinkedIn 将我重定向到错误页面。
这是我的设置(消费者密钥和秘密显然被混淆了):
[
{
"pk": null,
"model": "allaccess.provider",
"fields": {
"name": "facebook",
"consumer_key": "xxx",
"consumer_secret": "xxx",
"authorization_url": "https://www.facebook.com/dialog/oauth",
"access_token_url": "https://graph.facebook.com/oauth/access_token",
"request_token_url": "",
"profile_url": "https://graph.facebook.com/me"
}
},
{
"pk": null,
"model": "allaccess.provider",
"fields": {
"name": "twitter",
"consumer_key": "xxx",
"consumer_secret": "xxx",
"authorization_url": "https://api.twitter.com/oauth/authenticate",
"access_token_url": "https://api.twitter.com/oauth/access_token",
"request_token_url": "https://api.twitter.com/oauth/request_token",
"profile_url": "https://api.twitter.com/1.1/account/verify_credentials.json"
}
},
{
"pk": null,
"model": "allaccess.provider",
"fields": {
"name": "linkedin",
"consumer_key": "xxx",
"consumer_secret": "xxx",
"authorization_url": "https://www.linkedin.com/uas/oauth2/authorization",
"access_token_url": "https://www.linkedin.com/uas/oauth2/accessToken",
"request_token_url": "",
"profile_url": "https://api.linkedin.com/v1/people/~"
}
}
]
Facebook 和 Twitter 都在使用正确的身份验证流程并正确注册用户,但 Twitter 将我重定向到错误的页面并且根本没有注册用户。这是 LinkedIn 流程(我删除了大部分参数,并留下了redirect_uri):
https://www.linkedin.com/uas/oauth2/authorization?redirect_uri=http%3A%2F%2Flocalhost%3A8000%2Faccounts%2Fcallback%2Flinkedin%2F&response_type=codehttp://localhost:8000/accounts/callback/linkedin/http://localhost:8000/accounts/login/
我的第一个猜测是我的应用设置在 LinkedIn 中配置不正确,所以这是我的设置:
OAuth 2.0 重定向网址:http://localhost:8000/accounts/callback/linkedin/,http://localhost:8000/accounts/profile/
OAuth 1.0 接受重定向 URL:http://localhost:8000/accounts/profile/
我的第二个猜测是profile_url 参数错误,即https://api.linkedin.com/v1/people/~。
有人可以帮忙吗? 最好的。
【问题讨论】:
标签: python django oauth linkedin