![](/img/trans.png)
[英]django: rest-auth and allauth for Facebook registration API requires CSRF token
[英]Incorrect value in api/rest-auth/facebook/
我有一个与我从 React Native 应用程序收到的 access_token 相关的问题。 React Native 应用程序使用 expo-facebook 库,当身份验证的弹出窗口消失时,将创建令牌并将其发送到后端 API。 令牌由 logInWithReadPermissionsAsync 方法创建。
const { type, token, expirationDate, permissions, declinedPermissions, graphDomain } =
await Facebook.logInWithReadPermissionsAsync({
permissions: ["public_profile", "email"],
});
我看到服务器在 http://localhost:8000/api/rest-auth/facebook/ 端点上收到了这个令牌,并将其发送到 Facebook 端点验证。 问题出现在 Facebook 的响应上。 我希望它应该对 Facebook 有效,但似乎出了点问题。
HTTP 400 Bad Request
Allow: POST, OPTIONS
Content-Type: application/json
Vary: Accept
{
"non_field_errors": [
"Incorrect value."
],
"code": 400,
"message": "Bad Request"
}
我在 Graph API Explorer 中生成的访问令牌比在 React Native expo 应用程序中生成的令牌更短(当我使用它时,它在后端应用程序中工作)。 为什么这两个令牌不同? 为什么它不能按我的预期工作?
我发现问题出在哪里。 我知道问题出在令牌上,一个好的方向是来自 Facebook 的响应。
{"error":{"message":"Invalid appsecret_proof provided in the API argument","type":"GraphMethodException","code":100}}.
在那之后,我意识到 React Native Expo 可能有问题。 当您传递应用程序 ID 时,Expo-facebook 没有反应,它使用了在 expo 环境中定义的错误应用程序 ID(APP_ID=1696089354000816)。 App-id 是在设置中设置的,也在
await Facebook.initializeAsync({
appId: '<APP_ID>',
});".
所以主要问题是我依赖了一个不属于我的应用程序的 access_token。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.