Django下JWT的使用】的更多相关文章

figure:first-child { margin-top: -20px; } #write ol, #write ul { position: relative; } img { max-width: 100%; vertical-align: middle; } button, input, select, textarea { color: inherit; font-family: inherit; font-size: inherit; font-style: inherit; f…
前言 JWT 是 json web token 的缩写, token的作用你应该已经了解,用于识别用户身份避免每次请求都需要验证 用来解决前后端分离时的用户身份验证 在传统的web项目中 我们会在form表单中设置隐藏字段来提交token信息 但是在前后端分离时,我们就无法像网页一样直接放在表单里, 需要前后端的配合才能完成token的验证 简单使用: 下面是使用itsdangerous模块实现JWT的生成与解析 import hashlib,time from itsdangerous imp…
完整的后台界面怎么可以没有文本编辑器,但是django的admin界面很疑惑,没有自带文本编辑器,好在网上有不少成型的库可以用 我用的是ckeditor编辑器,安装和配置我引用别人的博客 这篇博客配置讲的很详细,之后就可以用RichTextField来定义模型,后台默认就是文本编辑器. 但是问题来了,文本编辑器是没有上传图片的功能,只能贴链接. 网上以前有两篇博客也是讲上传的,一篇是java web,一篇是django的 django的链接在这里 django下ckeditor上传图片的实现 j…
-------------------Django下进行对应的服务器配置1.服务器购买 本人在阿里云购买了一个服务器,操作系统为windows server2008/Linux(ubuntu) 2.服务器环境配置 1.pip freeze > plist.txt :将当前虚拟环境中所安装的环境,移植到plist.txt文件夹中 2.sudo apt-get install python-virtualenv :Linux下下载对应的虚拟环境安装包 3.sudo easy_install virt…
既然要来学习jwt(json web token),那么我们肯定是先要了解jwt的优势以及应用场景--跨域认证. $ pip install djangorestframework-jwt 传统cookie-session认证步骤: 1.用户向服务器发送用户名和密码. 2.服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色.登录时间等等. 在django session表中,session_key,session_data,expire_date.其中session_d…
什么是Cookies 什么是Cookies cookies设置的原因: 1. http请求的无记忆性: 2.加快访问速度  3. 减少服务器压力 cookies特点: cookies保存在客户端浏览器上的键值对,且每次访问页面都会带着cookies cookies可以主动清除 cookies也可以被"伪造",可以被别人带着cookies操作你的账号 cookies会根据域名进行分类,不能跨域共享,也就是说百度有百度的,JD有京东的 cookies必须请求数据成功后才能有用哈 浏览器可以…
CSRF 1.什么是CSRF? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF. 2.原理 从上图可以看出,要完成一次CSRF攻击,受害者必须依次完成两个步骤 : 1.登录受信任网站A,并在本地生成Cookie . 2.在不退出A的情况下,访问危险网站B. ps:注意并不是你退出了A后登陆B就会没事,因为你不能保证你关闭浏览器了后,你本地的Cookie立…
Django中settings中的四个设置参数的一些故事: MEDIA_ROOT, MEDIA_URL, STATIC_ROOT, STATIC_URL 1.MEDIA_ROOT与MEDIA_URL 事实上MEDIA_ROOT和MEDIA_URL代表的是用户上传后的文件一般保存的地方.我的理解是,可变文件的文件夹. 与这两个参数有联系的,是在Django的FileField和ImageField这样的Model类中,有upload_to参数可选.当upload_to设置相关的地址后,如:uplo…
什么是JWT? JWT,全称Json Web Token,用于作为JSON对象在各方之间安全地传输信息.该信息可以被验证和信任,因为它是数字签名的. 与Session的区别 一.Session是在服务器端的,而JWT是在客户端的,这点很重要. 二.流程不同: JWT使用场景 大量需要进行跨域的站点 服务器运算能力较差.存储空间较小 JWT的原理 JWT 的原理是,服务器认证以后,生成一个 JSON 对象,发回给用户,就像下面这样. { "姓名": "张三", &qu…
前言:本文主要针对自定义下拉表单制作,下拉表单的内容是取至于数据库,即动态实现下拉表单 正文: 动态实现下拉表单有两种方法: 一.自己手动写 html 模板中的 <form ...> </form> 在views 中,将所需要的数据传递过去,比如 names_list = [1, 2, 3, 4] 在 html 中 <select> {% for x in name_list %} <option value ="{{ x }}">{{…
最近在玩Django,想用它写一个很小很小的项目,Django自带数据库sqlite3,本来项目也小,我就用它了. 玩意虽小,东西却不是那么好用的. 首先,在项目中建立模型,一个例子是这样的: class Milestone(models.Model): Content = models.CharField(max_length=500) Date = models.DateField() 然后,在python命令行中键入:python manage.py syncdb OK ,它将在sqlit…
在创建完Django数据库结构之后,使用Django自带的强大的admin功能往数据库中添加数据,图形化界面如下: 但时候有下拉框选项(只要在model中有定义Charfield就会显示为下拉框),如果遇到了如下情况: 这是很反人类的,我知道他是NewsType 对象,你倒是显示对象的名称啊! 找了很多方法,查看了AdminModel的源代码: 我使用的python版本为3.6,可以看到list_display使用的是__str__方法,但是我在我的models中所有的返回值都是Unicode(…
后台设置中文在 settings.py LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/Shanghai' USE_I18N = True USE_L10N = True USE_TZ = False 安装方法复制 xadmin 目录到你的项目(xadmin还没上传)pip install httplib2 django-formtools django-crispy-forms # setting.py INSTALLED_APPS = [ ..., '…
js,css,img等都叫做静态文件,那么关于django中静态文件的配置,我们就需要在setting配置文件里面写上下面这些内容: #STATIC_URL = '/xxx/' #别名,随便写的名字,但是如果你改名字,别忘了前面页面里面如果你是通过/xxx/bootstrap.css.所以我们都是用下面的load static的方式来使用静态文件路径STATIC_URL = '/static' #别名 STATICFILES_DIRS = [ os.path.join(BASE_DIR,'jin…
建议使用djangorestframework-jwt或者djangorestframework_simplejwt,文档为 https://github.com/GetBlimp/django-rest-framework-jwt https://github.com/davesque/django-rest-framework-simplejwt 这里以djangorestframework-jwt举例 1.安装 pip install djangorestframework-jwt 2.配…
在使用前必须弄明白JWT的原理,原理可以看我的另一篇博文:https://www.cnblogs.com/chichung/p/9966027.html JWT的流程 1.签发JWT 在用户正确输入账号密码成功登录后,服务端就会签发JWT. django使用第三方库djangorestframework-jwt生成JWT,所以先安装第三方包. pip install djangorestframework-jwt 然后需要在django的配置上增加: REST_FRAMEWORK = { 'DE…
我的实现工具:window10 在window10 下面,实现第一个Django的HelloWorld项目. 1.创建一个项目 确保你的电脑上装了python和Django.我的是在python2.7和Django-1.10.5实现的. win+R,cmd进入命令行,在命令行输入:(我是进入H盘创建的myblog文件夹)   django-admin django-admin startproject myblog cd myblog python manage.py 创建的项目目录结构 myb…
可以创建个虚拟环境先,不过我没使用这个方式 virtualenv env source env/bin/activate ------ 退出: To exit the virtualenv environment at any time, just type deactivate 安装必要库 pip install django pip install djangorestframework pip install pygments # We'll be using this for the c…
一.回顾JWT的授权及鉴权流程 在笔者的上一篇文章中,已经为大家介绍了JWT以及其结构及使用方法.其授权与鉴权流程浓缩为以下两句话 授权:使用可信用户信息(用户名密码.短信登录)换取带有签名的JWT令牌 鉴权:解签JWT令牌,校验用户权限.具有某个接口访问权限,开放该接口访问. 二.Spring Security授权细节说明 我相信大家都能理解上面的授权与鉴权的整体流程,但是具体到使用Spring Security 如何实现授权,其中细节及原理还是需要单独提出来说明一下. 2.1.授权流程细节:…
1.创建第二个app 假设我们项目P下面已经有了一个默认的app,名字是app1.现在我想创建第二个app,名字时app2. 进入pychram下的Terminal中,运行命令: python manage.py startapp app2 此外,我在每个app下都建立一个urls.py,方便区分. 右击app名,new一个Python File,命名为urls,确定. 2.设置url.py 2.1.设置P\urls.py 引入app2下的urls,然后添加引导路径.具体代码如下: from a…
概念说明 ORM:关系对象映射的全称是 Object Relational Mapping, 简称ORM SQLAlchemy: 是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果. ORM方法论基于三个核心原则: 简单:以最基本的形式建模数据. 传达性:数据库结构被任何人都能理解的语言文档化. 精确性:基于数据模型创建正确标准化了的结构. django中遵循 Code…
一.什么是Token? Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器会生成一个Token并将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码. 二.为什么要使用Token? 在很多项目案例中,需要实现账户的功能,客户端所有的功能都基于用户已登陆的前提下才可以使用.这就要求每次客户端像服务器请求数据时都要验证账户是否正确,如果正确则按正常方式返回数据,如果错误则进行拦截并返回错误信息.但是当客户端频繁向…
1. 安装 rest_framework + djangorestframework_simplejwt 安装djangorestframework_simplejwt :pip install djangorestframework-simplejwt 安装rest_framework: pip install djangorestframework djangorestframework_simplejwt 是提供 jwt 的 django 应用. 2. 配置好 rest_framework…
折腾一下午,终于解决了这个问题,有必要记录一下,我就奇怪了为什么实验室电脑没问题,到宿舍就挂掉了,哼 主要是改mimetypes文件,位于D:\MySoftware\Python27\Lib下 1.添加代码 在mimetypes.py文件中找到 “default_encoding = sys.getdefaultencoding()” 在该代码之上添加 if sys.getdefaultencoding() != 'utf-8': reload(sys) sys.setdefaultencodi…
django-admin.py是Django的一个用户管理任务的命令行工具,manage.py是对django-admin.py的简单包装,每个Django Project里面都包含一个manage.py django-admin常用的命令:startproject 创建一个项目startapp 创建一个apprunserver 运行一个服务器shell 进入django shelldbshell 进入django dbshellcheck 检查django项目完整性flush 清空数据库com…
Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景.JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密.简单来说就是 JWT(Json Web Token)是实现token技术的一种解决方案 JW…
---恢复内容开始--- 第一步:确保setting中的INSTALL_APPS配置当前的app,要不然Django无法找到自定义的simple_tag. 第二步:在app中创建templatetags模块(模块名只能是templatetags) 第三步:创建任意的.py文件  比如:my_tags.py from django import template from django.utils.safestring import mark_safe register = template.Li…
如果Django顶层目录中没有templates的话,就自己新建一个Directory ,这个文件是存放html文件的 1)如果在views里面用render(request,"")引入的时候引入不了,去setting 里面检查TEMPLATES下面 'DIRS': [os.path.join(BASE_DIR, 'templates')],路径配置是否正确 2)静态文件static:里面存放js文件,setting 里面需要配置 STATIC_URL = '/static/' #别名…
和Cookie一样,都是用来进行用户认证.不同的是,Cookie可以吧明文/密文的信息都会KV返回给客户段,但是session可以吧用户的Value[敏感信息]保存在服务器端,安全. Django中默认支持Session,其内部提供了5种类型的Session供开发者使用: · 数据库(默认) · 缓存 · 文件 · 缓存+数据库 · 加密cookie 1.session的数据库操作: # 获取.设置.删除Session中数据 request.session['k1'] request.sessi…
安装django-debug-tools Python学习---django-debug-tools安装 性能测试: settings.py INSTALLED_APPS = [ ... 'app01', # 注册app ] STATICFILES_DIRS = (os.path.join(BASE_DIR, "statics"),) # 现添加的配置,这里是元组,注意逗号 TEMPLATES = [ ... 'DIRS': [os.path.join(BASE_DIR, 'templ…