当使用Vue.js和Auth0进行前端身份验证时,如何在Django的后端数据库中创建用户

时间:2017-06-02 08:21:13

标签: javascript python django vue.js auth0

我正在尝试使用Vue.js作为前端,并将Django作为SPA的后端。

在前端,我正在利用Auth0进行用户身份验证,并且我希望将从用户注册/创建中获得的id_token从Auth0发送到后端,以实时创建特定的用户配置文件。

当他们在前端的vue.js上使用Auth0注册时,如何为每个用户在我的django后端创建用户配置文件?

以前,我使用以下代码在创建用户后启用配置文件创建:

# Whenever a User account is created, it creates a profile for it too.

def create_profile(sender, **kwargs):
    user = kwargs["instance"]
    if kwargs["created"]:
        user_profile = UserProfile(user=user)
        user_profile.save()
post_save.connect(create_profile, sender=User)

def __str__(self):
    return self.user.username

简单来说,这就是我想要实现的目标:
- 用户在网站上注册
- 通过利用Auth0来创建帐户 - 获取Auth0中的user_id并从前端(Vue.js)发送到后端(Django)
- Django在其后端postgresql数据库中为注册用户创建用户配置文件 - 登录后,用户现在可以访问他的个人资料页面http://website/profile。(个人资料的数据来自Django)

我对Vue.js和Javascript相当新。虽然使用Vue.js是一件轻而易举的事,但我似乎无法弄清楚如何使用Auth0在Vue.js中复制类似的功能。

赞赏任何正确方向的帮助/指导/指示。

感谢。

1 个答案:

答案 0 :(得分:0)

您希望进行Ajax调用 - 我建议Axios - 在您的客户端和服务器端之间进行通信。它非常简单,我一直在使用它与Vue.js&喜欢它。

类似的东西:

auth.vue中的

axios.post('/yourUserRoute', {
    firstName: 'Fred',
    lastName: 'Flintstone'
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

如果您确保每次要注册新用户时都拨打此axios电话,您的后端将收到正确的信息,供您继续使用服务器。我从未接触过Django,所以我不打算尝试帮助你了解细节,但这应该会给你一个良好的开端!