我正在使用linkedin身份驗證api登錄我的網站用戶。Linkedin身份驗證無效redirect_uri
首先我重定向到以下網址的:
https://www.linkedin.com/oauth/v2/authorization?' \
'response_type=code' \
'&client_id=*****' \
'&redirect_uri=http%3A%2F%2F127.0.0.1%3A8000%2Faccounts%2Flinkedin%2Fcallback%3Fnext%3D%2Fhome' \
'&state=123456789' \
'&scope=r_basicprofile%20r_emailaddress'
這成功地重定向到LinkedIn身份驗證對話框。在接受授予linkedin應用程序用戶權限後,成功地將它重定向到redirect_uri,並附加code
param。
之後我發送POST請求喜歡如下:
requests.post(
'https://www.linkedin.com/oauth/v2/accessToken',
data={
'grant_type': 'authorization_code',
'code': returned code in previous step,
'redirect_uri': 'http%3A%2F%2F127.0.0.1%3A8000%2Faccounts%2Flinkedin%2Fcallback%3Fnext%3D%2Fhome',
'client_id': ****,
'client_secret': settings.LINKEDIN_CLIENT_SECRET,
}
)
但這一要求並不成功,我不知道爲什麼!以下是LinkedIn返回的響應:
{'error': 'invalid_redirect_uri', 'error_description': 'Unable to retrieve access token: appid or redirect uri or code verifier does not match authorization code or authorization code expired'}
正如你看到REDIRECT_URI在兩個相同的請求......
交換授權代碼的訪問令牌通常在沒有REDIRECT_URI完成。 (雖然我不知道linkedin是否屬於這種情況。)如果您不發送redirect_uri,它會工作嗎? –
是的,它需要根據LinkedIn資料 – mohammad