Django Rest Framework + Ember.js + rest auth
Django Rest Framework + Ember.js + rest auth
我们正在使用 Ember 为与我们的 Django Rest Framework API 后端交互的前端应用程序构建一个站点。对于社交身份验证,我们使用 django_rest_auth coupled with django-allauth。除了我们 运行 遇到社交身份验证问题外,该网站大部分都可以正常工作。我们的本地帐户 authentication/registration 工作正常。
我做过很多使用 django-allauth 的项目,但这是第一次使用 restful 身份验证系统。 ember 应用程序能够很好地从 google 获取令牌。响应类似于:
{
authorizationCode: "mYtokEn12345",
provider: "google-oauth2",
redirectUri: "http://localhost:4200/dashboard"
}
然后我 post access_token 到我根据 django_rest_auth 文档设置的端点。 POST /auth/google {access_token:} 但我收到从 Google 返回的错误 "Invalid Credentials"。在已经使用 Google 进行身份验证并收到我的令牌后,如何获得无效凭据?
通过代码调试后,我发现我在 allauth.socialaccount.providers.google.views.GoogleOAuth2Adapter
class 中的 complete_login
函数期间从 https://www.googleapis.com/oauth2/v1/userinfo 获得了响应。
它正在尝试 运行 GET https://www.googleapis.com/oauth2/v1/userinfo?access_token=mYtokEn12345&alt=json 但返回无效凭据。
{
error: {
errors: [
{
domain: "global",
reason: "authError",
message: "Invalid Credentials",
locationType: "header",
location: "Authorization"
}
],
code: 401,
message: "Invalid Credentials"
}
}
我不知道从这里到哪里去。有人对为什么会这样有一些指示吗?还有其他 code/errors 我可以提供帮助吗?
原来我们没有使用正确的令牌。我们使用的是 authorizationCode,它在另一个接收令牌的请求中使用。
我们正在使用 Ember 为与我们的 Django Rest Framework API 后端交互的前端应用程序构建一个站点。对于社交身份验证,我们使用 django_rest_auth coupled with django-allauth。除了我们 运行 遇到社交身份验证问题外,该网站大部分都可以正常工作。我们的本地帐户 authentication/registration 工作正常。
我做过很多使用 django-allauth 的项目,但这是第一次使用 restful 身份验证系统。 ember 应用程序能够很好地从 google 获取令牌。响应类似于:
{
authorizationCode: "mYtokEn12345",
provider: "google-oauth2",
redirectUri: "http://localhost:4200/dashboard"
}
然后我 post access_token 到我根据 django_rest_auth 文档设置的端点。 POST /auth/google {access_token:} 但我收到从 Google 返回的错误 "Invalid Credentials"。在已经使用 Google 进行身份验证并收到我的令牌后,如何获得无效凭据?
通过代码调试后,我发现我在 allauth.socialaccount.providers.google.views.GoogleOAuth2Adapter
class 中的 complete_login
函数期间从 https://www.googleapis.com/oauth2/v1/userinfo 获得了响应。
它正在尝试 运行 GET https://www.googleapis.com/oauth2/v1/userinfo?access_token=mYtokEn12345&alt=json 但返回无效凭据。
{
error: {
errors: [
{
domain: "global",
reason: "authError",
message: "Invalid Credentials",
locationType: "header",
location: "Authorization"
}
],
code: 401,
message: "Invalid Credentials"
}
}
我不知道从这里到哪里去。有人对为什么会这样有一些指示吗?还有其他 code/errors 我可以提供帮助吗?
原来我们没有使用正确的令牌。我们使用的是 authorizationCode,它在另一个接收令牌的请求中使用。