面试题

  1. jwt泄露了,怎么让token失效?

在用户登录时,记录用户的token到redis中,以用户id作为key来记录,同时设置这个key有一定有效期。

在用户每次登陆时,因为token在redis时以用户id作为key的, 作为每次用户登录都会拥有唯一的token生成,

所以,用户再次登陆就可以保证之前的token失效。同时,在admin站点中可以实现功能,让redis中当前用户id对应的token被删除掉即可。

  1. mysql中,一个表A,另一个表B,两张没有任何关联,但是要根据数据的波动去定义查询数据数据,到底是A装B,还是B装A。

union all 联合查询,一次查询两张没有关系的表。

  1. 你在开发中有试过哪些代码格式化或代码校验工具/模块?

python的第三方模块,pre-commit,可以让我们本地代码提交到git之前进行自动调用配置好的一些代码校验工具:

black,自动验证项目根目录或子目录下所有以py结尾的文件中的代码,是否符合pep8规范。

flake8,自动验证项目根目录或子目录下所有以py结尾的文件中的代码,是否符合pep8规范。

pycodestyle,

autopep8,这个工具执行的时候,会自动把所有.py结尾的文件中的代码,按pep8规范来自动调整。

isort,这个工具执行时,会自动帮我们把python中的导入模块的代码,自动进行排序整理,整理的规则:

```

import 包名 from 包名 import 模块 ```

pylint,自动验证校验代码是否符合python的pep规范。不仅包含了pep8,还包含了其他的规范,所以相对比较难以使用。