当前位置: 首页 > news >正文

一家只做正品的网站电影宣传网站模板免费下载

一家只做正品的网站,电影宣传网站模板免费下载,居然之家设计家官网,添加网站描述概述 cookie、session 与token 的区别 Cookie的作用 cookie的存储量很小#xff0c;一般不超过4Kcookie并不会保存很多信息#xff0c;一般用来存储登录状态cookie是以键值对进行表示的(keyvalue),例如nameli,表示cookie的名字是name,cookie携带的值是licookie的存储分为会…概述 cookie、session 与token 的区别 Cookie的作用 cookie的存储量很小一般不超过4Kcookie并不会保存很多信息一般用来存储登录状态cookie是以键值对进行表示的(keyvalue),例如nameli,表示cookie的名字是name,cookie携带的值是licookie的存储分为会话存储和持久性存储如果cookie会话性那么cookie仅会保存在客户端内存中当我们关闭客户端时cookie就会失效如果cookie为持久性那么cookie会保存到硬盘中直至生存期结束或者用户主动将其销毁 Session是什么 在网络应用中成为会话控制Session用来存储特定用户会话所需的属性及配置等信息session保存的位置在服务端 为什么需要session 我们目前使用的互联网应用层协议基本上都是基于HTTP和HTTPSHTTP和HTTPS是无状态的只负责请求和响应所以导致如果没有额外处理的话服务器是不知道你是谁更无法根据你是谁给你展现和你相关的内容 cookie存储在客户端session存储在服务端浏览器请求时将cookie携带至后端服务端根据cookie中的关键信息找到对应的session,用来保持会话 什么是token token其实就是一段加密的字符串一般由身份标识时间戳用户必要信息等内容组成tonken的传输就是一个加密和解密的过程 可以看到 服务端是不保存token的 JWT–JsonWebToken 实现原理 jwt eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c它是一个由.连接组成的三段字符串 服务端加密的过程 第一段字符串 是头信息头信息包含算法和算法类型这部分字符串由头信息进行base64加密得到的它是token的第一段字符串 第二段字符串 是我们自己定义或者存储的一些信息可以包含用户名过期时间等然后对此进行base64加密得到token第二段字符串 第三段字符串 第一段base64加上一个.然后加上第二段base64再加上“密钥”然后再来一个base64最后生成了token第三段字符串 以上3段字符串通过.进行连接生成最后的token返回给客户端 服务端解密的过程 可以从url中得到用户传递过来的token:requestGET.get(“token”) 第一部分我们用base64解密得到头信息 第二部分我们用base64解密得到自己再token中存储的数据 第三部分把第一个部分加第二部分内容再加上我们自己的密钥进行base64加密得到一个base64字符串最后用这个字符串和用户传递的第三部分进行比较 DRF-JWT 用户登录认证实现一 user/views class LoginView(GenericAPIView):def post(self,request):return_data {}request_data request.dataemail request_data.get(username)user_data User.objects.get(emailemail)if not user_data:return ResponseMessage.UserResponse.other(用户名或者是密码错误1)else:user_ser UserSerializer(instanceuser_data,manyFalse)# 用户输入的密码user_password request_data.get(password)md5_user_password get_md5(user_password)print(md5_user_password)# 数据库的密码db_user_password user_ser.data.get(password)print(db_user_password)if md5_user_password ! db_user_password:return ResponseMessage.UserResponse.other(用户名或者是密码错误2)else:token_info {username:email}token_data create_token(token_info)return_data[token] token_datareturn_data[username] user_ser.data.get(name)return ResponseMessage.UserResponse.success(return_data)user/urls path(login, LoginView.as_view()),utils/jwt_auth.py import datetimeimport jwt from rest_framework.authentication import BaseAuthenticationfrom muxi_shop_back.settings import SECRET_KEYdef create_token(payload,timeout1):headers {alg:HS256,typ:jwt}payload[exp] datetime.datetime.utcnow() datetime.timedelta(minutestimeout)result jwt.encode(headersheaders,payloadpayload,keySECRET_KEY,algorithmHS256)return resultdef get_payload(token):result {status:False,data:None,error:None}try:payload jwt.decode(token,SECRET_KEY,algorithms[HS256])result[status] Trueresult[data] payloadexcept jwt.exceptions.DecodeError:print(token认证失败了)result[error] token认证失败了except jwt.exceptions.ExpiredSignatureError:print(token已经失效了)result[error] token已经失效了except jwt.exceptions.InvalidTokenError:print(无效的、非法的token)result[error] 无效的、非法的tokenreturn result# 用户在url中进行token的参数配置 class JwtQueryParamAuthentication(BaseAuthentication):def authenticate(self, request):# 从url中拿到tokentoken request.GET.get(token)result_payload get_payload(token)print(result_payload)return (result_payload,token)class JwtHeaderAuthentication(BaseAuthentication):def authenticate(self, request):# 从头信息中拿到tokentoken request.META.get(HTTP_TOKEN)print(token)result_payload get_payload(token)print(result_payload)return (result_payload,token)测试一下 比如执行某个类下面的方法之前都会先获取token验证其是否失效 这里验证地址列表,通过url传递token 先登录获取token 获取地址列表 同时终端也打印了信息说明方法被调用了 utils/jwt_auth.py 再次请求token就失效了所以我们可以request.user.get(“status”) 判断用户登录状态是否失效 address/views 把定义的验证类加在该方法下表明访问即验证token class AddressListGenericAPIView(GenericAPIView,ListModelMixin):queryset UserAddress.objectsserializer_class AddressSerializerauthentication_classes [JwtQueryParamAuthentication, ]def get(self, request):# 拿到token验证返回的第一个值print(request.user)# 拿到token返回的第二个值print(request.auth)# 加该逻辑即进行验证if not request.user.get(status):return JsonResponse(request.user, safeFalse)return self.list(request)DRF-JWT 头信息传递的token验证 utils/jwt_auth.py class JwtHeaderAuthentication(BaseAuthentication):def authenticate(self, request):# 从头信息中拿到tokentoken request.META.get(HTTP_TOKEN)print(token) DRF-JWT-Token 的全局配置 settings # 全局的token验证配置 REST_FRAMEWORK {DEFAULT_AUTHENTICATION_CLASSES:[utils.jwt_auth.JwtQueryParamAuthentication] }测试 只需要加这两行代码就行 不加的不影响
http://www.w-s-a.com/news/509594/

相关文章:

  • 建设网站能解决什么问题wordpress 模板 中文
  • 平台型网站建设预算表友情链接中有个网站域名过期了会影响
  • 漯河网站开发运营seo是什么意思
  • 网站建设的征求意见稿iis 网站 红
  • 网站搭建教室企业网站开发实训心得
  • 阿克苏建设网站佛山app定制
  • 做淘宝网站要求与想法大型网站建设推荐
  • 在百度做网站赚钱吗跨境电商网站开发
  • 酒店网站建设策划方案南昌网站建设南昌
  • 临沂罗庄做网站房产cms
  • 五合一网站做优化好用吗网站设计的专业流程
  • 毕业设计论文网站开发需要多少网站seo建设方案
  • h5页面用什么做杭州优化外包哪里好
  • 许昌网站建设百姓国货app下载
  • 什么是建站装修公司做宣传在哪个网站
  • 阿里云虚拟主机多个网站吗大庆油田建设集团网站
  • 坂田公司做网站公司有网站域名后如何建网站
  • 自媒体网站程序淘宝网站维护
  • 凡科网站建设网站wordpress 七牛oss
  • 搬瓦工的主机可以用来做网站吗分类信息网站开发需求方案
  • 上海高端网站开发站霸网络国际网站建设的目的
  • 程序员招聘求职的网站做网站加入广告联盟
  • 网站建设的技术方案模板易做文学网站的logo
  • 建设国家标准官方网站响应式网站切图
  • 网站链接数怎么做wordpress安装网址
  • 沈阳建网站 哪家好如何做旅游网站推销
  • 继续网站建设南通网站建设方法
  • 淮南公司网站建设如果做京东优惠卷的网站
  • 二手房网站平台怎么做项目工程监理公司网站建设方案
  • 秦皇岛做网站公司小说推广平台有哪些