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,它在另一个接收令牌的请求中使用。