安装jwt库,简单快速的生成我们所需要的token

1.安装djangorestframe

pip install djangorestframe

2.在settings.py的INSTALLED_APPS中加入:

INSTALLED_APPS = [
...
'rest_framework',
'rest_framework.authtoken', # 设置token
...
]

安装jwt库,简单快速的生成我们所需要的token

1.安装JWT

pip install djangorestframework-jwt

2.配置jwt

# django-rest-framework设置
REST_FRAMEWORK = {
'PAGE_SIZE': 10, # 设置所有接口都需要被验证
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication',
),
}

解决api跨域请求

1.安装包

pip install django-cors-headers

2.配置django-cors-headers

INSTALLED_APPS = [
...
'corsheaders',
...
] MIDDLEWARE_CLASSES = (
...
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware', # 注意顺序
...
) #跨域增加忽略
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = () CORS_ALLOW_METHODS = (
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
'VIEW',
) CORS_ALLOW_HEADERS = (
'accept',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
)

简单实用JWT

1.配置jwt有效时间

import datetime
JWT_AUTH = {
'JWT_EXPIRATION_DELTA': datetime.timedelta(seconds=300), # days=7
}

2.jwt验证

from rest_framework_jwt.views import obtain_jwt_token

url(r'^api-token-auth/', obtain_jwt_token),

3.配置页面访问权限

from rest_framework_jwt.authentication import JSONWebTokenAuthentication

class GoodsListViewSet(CacheResponseMixin, mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet):
authentication_classes = (JSONWebTokenAuthentication,)

前端请求

1.使用post方法获取token并存入html的localStorage中

<script type="text/javascript">
function post_test() {
$.post("http://10.127.48.204:8000/api-token-auth/",{
'username':'earthchen',
'password':'xxxxxxxx'
},
function(result){
if(result){
localStorage.token=result.token; 存入数据
}
})
}
</script>

2.在请求数据时需要在头部添加token

<script type="text/javascript">
function test(){
$.ajax({
headers:{
'Authorization':'JWT '+localStorage.token //注意:jwt后面有个空格
},
type:"get",
url:"http://10.127.48.204:8000/snippets/1/",
success:function(result){
document.write(result.style);
}
})
}
<script>

  

django-rest-framework配置json web token的更多相关文章

  1. 使用json web token

    由来 做了这么长时间的web开发,从JAVA EE中的jsf,spring,hibernate框架,到spring web MVC,到用php框架thinkPHP,到现在的nodejs,我自己的看法是 ...

  2. django-rest-framework之 json web token方式完成用户认证

    json web token的介绍:https://blog.csdn.net/kevin_lcq/article/details/74846723 1. 安装 $ pip install djang ...

  3. 42.JSON Web Token认证

    JSON Web Token认证介绍 简称JWT认证,一般用于用户认证 JWT是一种相当新的标准,可用于基于token的身份验证 与内置的TokenAuthentication方案不同,JWT不需要使 ...

  4. Hacking JWT(JSON Web Token)

    0x01 JWT工作流程 JSON Web Token(JWT)是一个非常轻巧的规范. 这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息. JWT常被用于前后端分离,可以和Restful ...

  5. Java JWT: JSON Web Token

    Java JWT: JSON Web Token for Java and Android JJWT aims to be the easiest to use and understand libr ...

  6. 如何在SpringBoot中集成JWT(JSON Web Token)鉴权

    这篇博客主要是简单介绍了一下什么是JWT,以及如何在Spring Boot项目中使用JWT(JSON Web Token). 1.关于JWT 1.1 什么是JWT 老生常谈的开头,我们要用这样一种工具 ...

  7. JWT(JSON Web Token) 【转载】

    JWT(JSON Web Token) 什么叫JWTJSON Web Token(JWT)是目前最流行的跨域身份验证解决方案. 一般来说,互联网用户认证是这样子的. 1.用户向服务器发送用户名和密码. ...

  8. JWT(JSON Web Token)

    摘要: 在Web应用中,使用JWT替代session并不是个好主意 适合JWT的使用场景 抱歉,当了回标题党.我并不否认JWT的价值,只是它经常被误用. 什么是JWT 根据维基百科的定义,JSON W ...

  9. webapp用户身份认证方案 JSON WEB TOKEN 实现

    webapp用户身份认证方案 JSON WEB TOKEN 实现Deme示例,Java版 本项目依赖于下面jar包: nimbus-jose-jwt-4.13.1.jar (一款开源的成熟的JSON ...

随机推荐

  1. Hibernate运行原生sql并将查询的结果转化为对象

    原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口.下面来描述如何使用这个API进行查询.标量查询(Scalar queri ...

  2. docker systemctl无法使用

    Dockerfile for systemd base image FROM centos:7 ENV container docker RUN (cd /lib/systemd/system/sys ...

  3. 窗口关闭时弹出内存不能为read

    出现这个错误的原因是:某个指针类型的变量或对象,其记录的内容不可用,但进程对其进行了访问.可能由于:指针类型的变量或对象未被赋值就被使用:或者已经被正常释放后,又被访问所致.由于是在结束进程时报这样的 ...

  4. version `GLIBC_2.17' not found 解决方法

    1.先查看是哪个函数用的是GLIBC_2.17 root@emb-pc:/home/emb/temp# nm lib61850.so | grep GLIBC_2.17 U clock_gettime ...

  5. springMvc接收ajax数组参数,以及jquery复选框选中、反选、全选、全不选

    一.复选框选中.反选.全选.全不选 html代码: <input type='checkbox' name='menuCheckBox' value='10' >苹果 <input ...

  6. Linux基础之常用命令整理(一)

    Linux 操作系统的安装 如今比较流线的linux操作系统 Centos Redhat  Fedora Ubuntu, 安装操作系统的提前是要有操作系统的镜像文件(.iso文件)并且必须为系统指定一 ...

  7. hustOJ 添加 golang 支持

    hustOJ 支持Go1.7.1 是否为docker环境不重要,此处所有内容均为docker中执行,普通主机手动安装则更加如此 建议在docker中执行,因为OJ为严控恶意权限,judge_clien ...

  8. Jenkins服务使用nginx代理服务器做负载均衡

    学习nginx代理服务器做负载均衡的使用 在本地安装Nginx 1.下载nginx http://nginx.org/en/download.html         下载稳定版本,以nginx/Wi ...

  9. How to setup Tensorflow inception-v3 model on Windows

    There is Inception-v3 model python implementation on GitHub at: https://github.com/tensorflow/models ...

  10. 02 jmeter性能测试系列_JForum测试论坛的环境搭建

    软件测试高端专家培训 QQ 讨论群498721021 网站http://www.szwpinfo.com 1.进入jforum的官方网站,地址http://jforum.net/,下载 2.放入到to ...