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

深圳外贸网站制作个人网站建设培训

深圳外贸网站制作,个人网站建设培训,企业设计网站公司哪家好,建设网站的实验目的和意义安装:pip install Flask-JWT-Extended创建对象 初始化与app绑定jwt JWTManager(app) # 初始化JWTManager设置 Cookie 的选项:除了设置 cookie 的名称和值之外#xff0c;你还可以指定其他的选项#xff0c;例如#xff1a;过期时间 (max_age)#xff1… 安装:pip install Flask-JWT-Extended创建对象 初始化与app绑定jwt JWTManager(app) # 初始化JWTManager设置 Cookie 的选项:除了设置 cookie 的名称和值之外你还可以指定其他的选项例如过期时间 (max_age) 指定 cookie 何时过期。# max_age60 * 60 * 24 * 7 # 7天有效期max_agedatetime.timedelta(days2)1. 设置cookies# 设置cookies成功 重定向到首页# 创建JWT token只存储用户名access_token create_access_token(identityusername)# 设置JWT到cookie并重定向到主页response redirect(url_for(index))set_access_cookies(response, access_token,# max_age60 * 60 * 24 * 7 # 7天有效期max_agedatetime.timedelta(days2))return response1.1 # 创建JWT token只存储用户名# 访问令牌 freshTrue 创建新鲜令牌access_token create_access_token(identityusername, freshTrue) # freshTrue 创建新鲜令牌# 刷新令牌refresh_token create_refresh_token(identityusername)# 设置JWT到cookie并重定向到主页response redirect(url_for(index))set_access_cookies(response, access_token,# max_age60 * 60 * 24 * 7 # 7天有效期# max_agedatetime.timedelta(days2))# 设置刷新令牌set_refresh_cookies(response, refresh_token,# max_age60 * 60 * 24 * 7 # 7天有效期# max_agedatetime.timedelta(days2))return response2. 获取cookies# 获取当前会话中的身份信息info get_jwt_identity()return render_template(index.html, infoinfo)3. 设置cookies会话有效期# 设置JWT到cookie并重定向到主页response redirect(url_for(index))set_access_cookies(response, access_token,# max_age60 * 60 * 24 * 7 # 7天有效期# max_agedatetime.timedelta(days2))# 设置刷新令牌set_refresh_cookies(response, refresh_token,# max_age60 * 60 * 24 * 7 # 7天有效期# max_agedatetime.timedelta(days2))4. 删除cookies# 注销用户并删除JWT cookiesresponse redirect(url_for(login))# unset_access_cookies(response) # 清除访问令牌# unset_refresh_cookies(response) # 清除刷新令牌unset_jwt_cookies(response) # 可以清除访问刷新令牌return response5. response创建对象的方法:导包:from flask import make_response, Response# 1. response make_response(redirect(url_for(test_blue.login_index)))# 2. response make_response(render_template(test/home.html), 200)# 3. response make_response(success, 201)# 这种就可以# 4. response redirect(url_for(login))6. 捕获异常 并重定向# 捕获令牌过期jwt.expired_token_loaderdef expired_token_callback(jwt_header, jwt_payload):return redirect(url_for(login, messageSession expired, please log in again.))# 捕获无效的令牌jwt.invalid_token_loaderdef invalid_token_callback(error):return redirect(url_for(login, messageInvalid token, please log in again.))# 捕获缺少令牌的情况jwt.unauthorized_loaderdef missing_token_callback(error):return redirect(url_for(login, messageToken missing, please log in.))# 捕获刷新令牌失效jwt.revoked_token_loaderdef revoked_token_callback(jwt_header, jwt_payload):return redirect(url_for(login, messageToken revoked, please log in again.))# 1. 两者不能同时使用 freshTrue用于要求新鲜令牌来访问敏感操作。 refreshTrue用于要求刷新令牌来生成新的访问令牌。# 2. 使用新鲜令牌 在创建 (访问令牌)access_token 时 设置 freshTrue access_token create_access_token(identityusername, freshTrue) # freshTrue 创建新鲜令牌# 3. 在装饰里 设置 freshTrue 才能验证新鲜令牌 jwt_required(freshTrue)   import datetime import hashlibfrom flask import (Flask, render_template, redirect, url_for, request,make_response, Response, current_app ) from functools import wraps from flask_jwt_extended import (JWTManager,jwt_required,verify_jwt_in_request,create_access_token,create_refresh_token,get_jwt_identity,get_current_user,set_access_cookies,set_refresh_cookies,unset_refresh_cookies, # 刷新令牌unset_access_cookies, # 访问令牌unset_jwt_cookies, # 同时清除 访问令牌 和 刷新令牌)app Flask(__name__) app.secret_key ghakjhkghkahkhgkhalkfdngkasnkglhaj.encode(utf-8)app.config[JWT_TOKEN_LOCATION] [cookies]jwt JWTManager(app) # 初始化JWTManager# 捕获令牌过期 jwt.expired_token_loader def expired_token_callback(jwt_header, jwt_payload):return redirect(url_for(login, messageSession expired, please log in again.))# 捕获无效的令牌 jwt.invalid_token_loader def invalid_token_callback(error):return redirect(url_for(login, messageInvalid token, please log in again.))# 捕获缺少令牌的情况 jwt.unauthorized_loader def missing_token_callback(error):return redirect(url_for(login, messageToken missing, please log in.))# 捕获刷新令牌失效 jwt.revoked_token_loader def revoked_token_callback(jwt_header, jwt_payload):return redirect(url_for(login, messageToken revoked, please log in again.))app.route(/) app.route(/index, methods[GET, POST]) jwt_required(freshTrue) def index():# 获取当前会话中的身份信息info get_jwt_identity()return render_template(index.html, infoinfo)app.route(/login, methods[GET, POST]) def login():if request.method POST:username request.form.get(username, None)password request.form.get(password, None)confirm_password request.form.get(confirm_password, None)# 表单验证逻辑if not username or not password or not confirm_password:return render_template(login.html, errors所有字段不能为空)if password ! confirm_password:return render_template(login.html, errors密码不一致)# 假设用户名和密码验证成功if username root and password 123:# 创建JWT token只存储用户名access_token create_access_token(identityusername, freshTrue) # freshTrue 创建新鲜令牌refresh_token create_refresh_token(identityusername)# 设置JWT到cookie并重定向到主页response redirect(url_for(index))set_access_cookies(response, access_token,# max_age60 * 60 * 24 * 7 # 7天有效期# max_agedatetime.timedelta(days2))# 设置刷新令牌set_refresh_cookies(response, refresh_token,# max_age60 * 60 * 24 * 7 # 7天有效期# max_agedatetime.timedelta(days2))return responseelse:return render_template(login.html, errors账号或密码有误)return render_template(login.html)app.route(/logout, methods[GET, POST]) jwt_required(freshTrue) def logout():# 注销用户并删除JWT cookiesresponse redirect(url_for(login))# unset_access_cookies(response) # 清除访问令牌# unset_refresh_cookies(response) # 清除刷新令牌unset_jwt_cookies(response) # 可以清除访问刷新令牌return response# 刷新访问令牌需要刷新令牌 app.route(/refresh, methods[GET, POST]) jwt_required(refreshTrue) # 使用刷新令牌进行验证 def refresh():current_user get_jwt_identity() # 从刷新令牌中获取用户身份new_access_token create_access_token(identitycurrent_user, freshTrue) # 生成新的访问令牌refresh_token create_refresh_token(identitycurrent_user) # 生成新的刷新令牌# 创建响应并设置新的访问令牌到 cookiesresponse redirect(url_for(index)) # 重定向到主页set_access_cookies(response, new_access_token) # 将新的访问令牌写入 cookiesset_refresh_cookies(response, refresh_token) # 将新的刷新令牌写入 cookiesreturn responseapp.route(/test) jwt_required(freshTrue) def test():return 测试成功if __name__ __main__:app.run(debugTrue)
http://www.hkea.cn/news/14366939/

相关文章:

  • 视频直播网站怎么做paypal账号注册
  • 小学网站建设情况山东住建部和城乡建设官网
  • 第一个做装修的网站大型网站快速排名
  • 上虞网站设计自媒体多平台发布工具
  • 视频购物网站开发方案wordpress设置背景图
  • wix做网站步骤阿里云搭建网站多少钱
  • 云建站公司自己建网站做那个模块好
  • 微信小程序 创建网站网站做造价
  • 建服务网站需要多少钱加盟型网站
  • 男女做那个的网站是什么旅游做哪个网站好
  • 中高端网站设计排名郑州小程序网站开发
  • 自己在家怎么做网站服务器文字生成二维码
  • 有关电子商务网站建设的 论文仓库常用erp系统
  • 公司是否可以做多个网站wordpress api接口 APP
  • jsp网站开发四 酷 全书源码网站建设与维护ppt
  • 网站上传的工具网站建设企业建站
  • 什么网站做一件代发如何做公众号影视网站
  • 做网站价格沧州推广建站
  • 东莞樟木头网站建设济南网站建设选聚搜网络一x
  • 注册域名网站备案wordpress 地理位置签到
  • 十大下载网站免费安装电商网站建设网络公司
  • 网站导航设计法则没域名 打开网站
  • 建设网站公司怎么收费wordpress批注功能
  • 电脑视频wordpress三亚网站优化
  • 网站模板制作视频教程公司标志设计
  • 中山手机网站建设报价现代装修风格效果图
  • 网站怎么优化排名网站seo顾问
  • 遵义市做网站的电话网站建设服务合同范本
  • 网上推广网站廊坊公司做网站
  • 海外网站建设推广广告制作公司经营范围有哪些