让我们使用Django,vuejs,Django rest框架和jwt构建音乐流应用程序-2

在上一篇文章中,我们已经使用Django和DRF成功构建了基本API。 在这篇文章中,我们将添加身份验证并准备好我们的API。接下来我们将使用 Django-allauth, 因为能节省我们完全从头开始编写用户模型的时间, Django rest auth将我们的allauth模型转换为JSON可序列化。

让我们先安装:

然后将这些应用程序添加到api / Settings.py中的“中
Django-allauth使用用户名作为必填且唯一的字段,我想通过将BaseUserManager扩展到我们的CustomUserManager来用电子邮件覆盖该用户名。 我们还需要超级用户一些额外的字段。
将此添加到Managers.py文件

通过子类化AbstractUser,使电子邮件成为唯一标识符。 在此为用户提供我们的模型文件。

现在是时候使用rest框架序列化我们的模型了。

更新api / urls.py文件,将用户网址扩展到api urls.py中:

到目前如何没有任何错误,我们就可以注册一个帐户并登录试试了。

导航到http://127.0.0.1:8000/rest-auth/register/进行注册
http://127.0.0.1:8000/rest-auth/login/登录

http://127.0.0.1:8000/rest-auth/user/以显示用户详细信息

接下来一步就是要使用jwt了, Django allauth已经为每个用户提供会话密钥,你可能会问为什么使用JWT呢? 因为jwt的结构可以帮助我们通过签名来验证用户。 Jwt有两个tokens access和refresh token。 他们的名字本身说明了他们的所作所为。 访问令牌是短暂的(尽管可以自定义5分钟左右)。 refresh token令牌的寿命长,通常在24小时内到期,也可以自定义。 您需要使用登录凭据来refresh token以进行r刷新。
让我们安装jwt

安装后,导航到API并编辑settings.py并添加它

现在将它们添加到api / urls.py

导航到http://127.0.0.1:8000/api/v1/auth/obtain_token/以获取令牌,这时候我们输入用户名和密码返回的将是一个token字符串,用这个token去访问音乐文件。
现在,在音乐视图中取消注释permission_classes =(permissions.IsAuthenticated,)行,这仅允许经过身份验证的用户

截止目前我们已经使用Django,DRF,JWT成功构建了这个项目的后端。

GIT仓库:

https://github.com/Adarshreddyash/ronix-backend

https://github.com/Adarshreddyash/ronix-frontend