2020-08-30问题解决思路与方案:后端传前端JSON(cookie)加双引号问题、令牌无限过期,MAC时间校准

利用set_cookie,后端向前端传json数据时,字符串会加上双引号

参考https://blog.csdn.net/chinabestchina/article/details/80905750
同样也是设置了一个邮箱地址,然后发现形如"abc"的字符串不会加双引号,但邮箱地址会加。原因是目前大多数浏览器所使用的cookie,对于特殊字符如@,是不兼容的,会自动加上双引号。
解决方案有两种:
方法1:读取cookie时,将双引号去掉;
方法2:在设置cookie值时,先编码encode,读取值时,则相应的解码decode。
但目前还没有在js中实现。

Token验证一直失败,显示过期

  1. 将jwt放在在线解析网页中,获取exp,即过期时间戳。
  2. 将Token过期时间戳放到搜索到的时间戳在线转换网页中,查看具体过期时间。
  3. 发现在接收到token的时间就已经过期了。
  4. 检查mac时间,发现比实际的快2min。虽然这不是根本原因,但还是调一下为好。
  5. 参考https://blog.csdn.net/ATangSir/article/details/106780242
    使用命令行同步mac时间
# 方法一:使用apple time官网协议
sudo sntp -sS time.apple.com
 
# 方法二:外网不好用时,使用阿里云IP
sudo sntp -sS 182.92.12.11

gunicorn启动flask项目所有route都404

因为route写在了run.py里, 一般是要写进__init__.py里才能找到。
所以在app初始化之后会加入from run import *
最终是这样的⬇️

  • app/init.py
app = Flask(__name__)
...
from run import *

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5000)
  • run.py
from app import app
@app.route('/')
def index():
	return "hello world"
import os

import gevent.monkey
gevent.monkey.patch_all()
import multiprocessing

loglevel = 'debug'

#监听地址+端口
bind = "0.0.0.0:5000"

#定义日志存储
if not os.path.exists('log/'):
    os.makedirs('log/')
pidfile = "log/gunicorn.pid"
#访问日志
accesslog = "log/access.log"
#错误日志
errorlog = "log/debug.log"

#开启后台运行,默认值为False
daemon = False

#启动的进程数,推荐值为:CPU核数*2+1
workers = 4

#指开启的每个工作进程的模式类型,默认为sync模式,也可使用gevent模式
worker_class = 'gevent'
x_forwarded_for_header = 'X-FORWARDED-FOR'

使用命令gunicorn -c config.py app:app启动,此处app:app中,第一个app为flask项目实例所在的包,第二个app为生成的flask项目实例

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值