利用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项目实例

更多推荐