django的最小令牌认证

nap-token-auth的Python项目详细描述


简单的基于令牌的身份验证。

概述

很多人都在谈论为restapi使用令牌身份验证……但这到底意味着什么呢?有什么好处呢?

令牌是加密签名的数据块。在本例中,它包含用户id、后端和发出时的时间戳。

这使您可以生成并向电话应用程序、服务等颁发令牌,而不必处理登录、密码、csrf等。

安装

添加到settings.middleware,在默认身份验证之后 中间件:

MIDDLEWARE=['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','nap_token.middleware.NapTokenMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware','cloudselect.middleware.CORSDefeat',]

用法

当您想登录用户时,调用nap_token.get_auth_token(user),传递 从django.contrib.auth.authenticate返回的用户实例。

它将返回一个签名的、带时间戳的令牌。客户只需要把这个传进去 一个Authorization头,格式为'bearer{token},用于请求 充当那个用户。如果令牌不存在、过期或无效,requset.user 将返回到正常的基于会话的身份验证。

发行代币

作为一个快速和肮脏的例子,如何发行令牌,这里有一个方法 将为可以登录的用户颁发令牌:

fromdjango.httpimportHttpResponsefromdjango.contrib.auth.viewsimportLoginViewfromnap_tokenimportget_auth_tokenclassTokenView(LoginView):defform_valid(self,form):user=form.get_user()returnHttpResponse(get_auth_token(user))

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java实现双锁并发队列   java如何更改SpringWS 2.4.4版或更高版本中maxOccurs的默认限制?   java Selenium RC如何处理动态行?   java何时引入Javac StringBuilder/StringBuffer优化?   java mediaplayer在R.raw Android上失败   java JPA2:不区分大小写,就像在任何地方匹配一样   如何从JDK15中提取java预览类文件?   java与mySQL删除查询不一致   从Shutdownow()返回的java列表<Runnable>无法转换为提交的Runnable   java如何从回调接口获取对象值?   java如何获得视图的高度,在xml中可见性和高度定义为wrap_内容?   postgresql Mybatis在启动时遇到“由以下原因引起:java.net.UnknownHostException:localhost”,为什么?   带有实例调用的方法调用的java intellij格式化程序换行   由于特定的第三方库,java Proguard产生运行时错误   动画JAVA JPanel同时滑出和滑入