Google的社交身份验证因Vue.js和django-rest-auth失败

时间:2019-03-04 08:29:08

标签: django vue.js django-rest-framework django-rest-auth

我正在关注一个博客,该博客向我们展示了如何将vue-authenticate与django restframework一起用于社会认证。

这是博客:https://medium.com/@dobrotek6/drfsamv-django-rest-framework-social-auth-mongo-vuejs-part-1-c5c907dd7b69

但是,该博客使用了一些我未使用的social-auth框架。我正在使用django-rest-auth软件包。

我试图进行相应的设置,但是遇到了一些问题。

redirectUri: 'http://localhost:8080/',
url: 'http://localhost:8000/rest-auth/google/',

上面的代码根据vue身份验证文档显示了我在提供程序设置中放置的链接

this.$auth.authenticate('google', {provider: "google- 
oauth2"}).then(function (response)

上面的代码根据我从博客复制的vue-authenticate文档显示了身份验证方法。这是我收到验证失败的错误的地方。

我做错了到底是什么?我似乎无法确定问题所在。

1 个答案:

答案 0 :(得分:0)

遇到相同的问题,解决方案很容易,但很难找到。

您需要在Vue-authenticate的配置中添加tokenPath字段,以允许vue在响应中找到令牌。

在我的情况下,Django在“令牌”字段中返回令牌,但在您的情况下可能有所不同。

示例代码:

Vue.use(VueAuthenticate, {
  baseUrl: 'youApiDomain',
  storageType: 'localStorage',
  tokenPath: 'token',

  providers: {
    google: {
      clientId: 'yourClientId',
      redirectUri: '',
      url: 'authenticationUrl',
    }
  }
});

解决方案位于:https://github.com/dgrubelic/vue-authenticate/issues/157#issuecomment-487063363