我使用django-all-access爲Facebook,Twitter和LinkedIn執行OAuth身份驗證。 Facebook和Twitter工作正常,LinkedIn正在將我重定向到錯誤的頁面。使用django-all-access對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=code
http://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/~
。
任何人都可以幫忙嗎? 最好。