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

沈阳网站建设报价微网站自助建站

沈阳网站建设报价,微网站自助建站,带数据库的网站模板,三峡建设网站JWT#xff08;JSON Web Token#xff09;是一种轻量级的、基于 JSON 的开放标准#xff08;RFC 7519#xff09;#xff0c;用于在各方之间安全地传递信息。JWT 的特点是结构简单、轻量化和跨平台支持#xff0c;适用于用户身份验证、信息加密以及无状态的 API 访问控制…JWTJSON Web Token是一种轻量级的、基于 JSON 的开放标准RFC 7519用于在各方之间安全地传递信息。JWT 的特点是结构简单、轻量化和跨平台支持适用于用户身份验证、信息加密以及无状态的 API 访问控制。使用 JWT可以有效实现无状态的用户认证和授权简化 Web 和 API 的身份管理流程。 一、JWT 的组成 JWT 由三部分组成用 . 分隔 Header头部描述令牌类型和签名算法。Payload负载包含声明Claims如用户 ID、过期时间等。Signature签名用来验证信息的真实性。 示例 JWT eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c Header: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9Payload: eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQSignature: SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c JWT 的应用场景 用户身份认证前后端分离项目中前端通过 JWT 验证用户身份。授权基于角色的访问控制。信息传递传递加密信息。 二、使用 JWT 使用 PyJWT 模块来生成和解析 JWT。安装方法如下 pip install PyJWT 1. 基本用法 首先我们来看下它的逻辑 生成 JWT import jwt import datetime# 密钥 SECRET_KEY mysecretkey# 创建 JWT def create_token(data):payload {data: data,exp: datetime.datetime.utcnow() datetime.timedelta(hours1)  # 1小时后过期}token jwt.encode(payload, SECRET_KEY, algorithmHS256)return token# 示例 token create_token({user_id: 123})print(Generated Token:, token) 解码 JWT # 解码 JWT def decode_token(token):try:payload jwt.decode(token, SECRET_KEY, algorithms[HS256])return payloadexcept jwt.ExpiredSignatureError:return Token has expiredexcept jwt.InvalidTokenError:return Invalid token# 示例 decoded decode_token(token)print(Decoded Payload:, decoded) 2. 添加更多字段到 Payload # 创建带有角色信息的 JWT def create_token_with_roles(data, roles):payload {data: data,roles: roles,iat: datetime.datetime.utcnow(),  # 签发时间exp: datetime.datetime.utcnow() datetime.timedelta(hours2)  # 过期时间}token jwt.encode(payload, SECRET_KEY, algorithmHS256)return token# 示例 token_with_roles create_token_with_roles({user_id: 456}, [admin, editor])print(Token with roles:, token_with_roles)# 解码并解析角色 decoded_with_roles decode_token(token_with_roles)print(Decoded with roles:, decoded_with_roles) 3. 使用 Refresh Token 实现 Token 刷新 为了增强安全性通常使用 Access Token 和 Refresh Token 的双令牌机制。 # 生成 Refresh Token def create_refresh_token(data):payload {data: data,exp: datetime.datetime.utcnow() datetime.timedelta(days7)  # 7天后过期}refresh_token jwt.encode(payload, SECRET_KEY, algorithmHS256)return refresh_token# 刷新 Access Token def refresh_access_token(refresh_token):try:payload jwt.decode(refresh_token, SECRET_KEY, algorithms[HS256])new_access_token create_token(payload[data])return new_access_tokenexcept jwt.ExpiredSignatureError:return Refresh token has expiredexcept jwt.InvalidTokenError:return Invalid refresh token# 示例 refresh_token create_refresh_token({user_id: 123})print(Refresh Token:, refresh_token)new_access_token refresh_access_token(refresh_token)print(New Access Token:, new_access_token) 4. 自定义异常处理 使用 JWT 时需要处理多种可能的异常。 # 自定义异常处理函数 def decode_token_with_exceptions(token):try:payload jwt.decode(token, SECRET_KEY, algorithms[HS256])return payloadexcept jwt.ExpiredSignatureError:raise Exception(Token expired. Please log in again.)except jwt.InvalidSignatureError:raise Exception(Invalid token signature. Token might be tampered.)except jwt.InvalidTokenError:raise Exception(Invalid token. Please provide a valid token.)# 示例 try:decoded_payload decode_token_with_exceptions(token)print(Decoded:, decoded_payload) except Exception as e:print(Error:, e) 5. 实战在 Django 中使用 JWT 安装依赖 pip install djangorestframework-simplejwt 配置 SimpleJWT 在 Django 的 settings.py 中添加配置 INSTALLED_APPS [rest_framework] REST_FRAMEWORK { DEFAULT_AUTHENTICATION_CLASSES: ( rest_framework_simplejwt.authentication.JWTAuthentication, ), } 添加视图 from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView urlpatterns [ path(api/token/, TokenObtainPairView.as_view(), nametoken_obtain_pair), path(api/token/refresh/, TokenRefreshView.as_view(), nametoken_refresh), ] 测试 获取 Token: POST 请求到 /api/token/发送用户名和密码。刷新 Token: POST 请求到 /api/token/refresh/发送 refresh token。 三、注意事项 安全性不要将敏感信息存储在 JWT 中。Token 过期策略确保及时设置过期时间防止长期有效的令牌带来的安全问题。签名保护使用安全的密钥存储和强加密算法。
http://www.hkea.cn/news/14533343/

相关文章:

  • 凉山州城乡规划建设局网站开发公司网上申报
  • 天河区门户网站招生考试旅游网站 功能
  • 可信赖的企业网站建设网站制作模板免费下载
  • 装修上什么网站比较好山西省建设工程信息网
  • 上海企业网站建设公司名域名反查网站
  • 卢氏县住房和城乡建设局网站微信做网站的公司
  • 网站免费建站app长春网络公司做网站
  • 佛山企业网站建站做房地产开网
  • 长春企业自助建站南昌加盟网站制作
  • 网站界面设计需要首先做市场研究对吗网站建设公司应该怎么做推广
  • php玩具公司网站源码推广吧
  • 现在网站用什么软件做南京市的网站是由那几家公司做的
  • 网站建设大概好多钱厦门企业网站设计公司
  • 帝国cms网站名称做室内效果图网站
  • 医院网站云服务器配置python做网站的案例
  • 网站开发和运营维护公司部门组织架构图
  • 浙江广厦建设职业技术学院招生网站企网官方网站
  • 贵港网站推广中国新冠实际死了多少了
  • 贵州网站集约化建设wordpress什么插件好
  • 阿里云域名怎样做网站抖音怎么开通小程序推广
  • 怎么选择手机网站建设推荐几个网站
  • 网站建设后商品进不去详情页外国网站在中国做推广
  • 刷网站关网站模板种类
  • 网络营销网站建设方案大数据培训心得
  • 网站开发 荣誉资质ftp wordpress
  • 淘宝客网站建设视频哪里可以学酷家乐设计
  • 广州金将令做网站怎么样上海比较好的装修公司排名
  • 网站建设综合实训ppt模板企业网络推广方式
  • 网站建设公司推荐互赢网络企业系统软件排行
  • 室内装饰网站模板牧羊人wordpress主题