【问题标题】:Django Rest Framework + Ember.js + rest authDjango 休息框架 + Ember.js + 休息认证
【发布时间】:2015-06-30 13:44:21
【问题描述】:

我们正在使用 Ember 为前端应用构建一个站点,该应用与我们的 Django Rest Framework API 后端交互。对于社交身份验证,我们使用django_rest_auth 加上django-allauth。该网站大部分都在工作,除了我们遇到了社交身份验证问题。我们的本地帐户身份验证/注册工作正常。

我做过很多使用 django-allauth 的项目,但这是第一次使用 restful 身份验证系统。 ember 应用程序能够很好地从谷歌获取令牌。响应类似于:

{
    authorizationCode: "mYtokEn12345", 
    provider: "google-oauth2", 
    redirectUri: "http://localhost:4200/dashboard"
}

然后,我将 access_token 发布到我根据 django_rest_auth 文档设置的端点。 POST /auth/google {access_token:} 但我收到 Google 返回的错误消息,显示“凭据无效”。在通过 Google 进行身份验证并收到我的令牌后,如何获取无效凭据?

通过代码调试后,我发现在allauth.socialaccount.providers.google.views.GoogleOAuth2Adapter 类中的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"
    }

}

我很困惑从这里去哪里。任何人都对为什么会发生这种情况有一些指示?我可以提供任何其他代码/错误以提供帮助吗?

【问题讨论】:

    标签: django google-oauth django-rest-framework django-allauth


    【解决方案1】:

    原来我们没有使用正确的令牌。我们使用的是授权码,它在另一个接收令牌的请求中使用。

    【讨论】:

      猜你喜欢
      • 2013-04-08
      • 1970-01-01
      • 2015-02-25
      • 2016-04-25
      • 2016-03-23
      • 2016-06-20
      • 1970-01-01
      相关资源
      最近更新 更多