是要在服务器上配置吗?
服务器上,我的 nodejs 部署到测试环境里,这两天也这样。 看 pm2 logs mysql 断开了。
对,8 小时无访问就会断开。
我先测试一下哈。
配置文件应该是: /etc/my.cnf
正常生产环境,产品部署后这就不是问题了。8小时内肯定有访问的。不过对于我们这些正在开发的产品或者刚开始没有什么流量的产品。8小时内无访问应该是最初的常态。
这个文件我找到了,里面怎么写?
加上下面这行配置:
看样子配置写不合适,加个这几行。重启 nodejs , 直接连不上了
添加这一行配置就可以:
wait_timeout = 8640000
谢谢了
我按你这个也改了,但现在需要验证 token 的地方都返回成这个了
你加改进的这段代码没?
需要加上,不然应用不知道当前请求的用户是谁。加上以后,每次在客户端请求应用接口的时候,如果用户登录了,就得在请求里加上 Authorization 这个头部,在里面包含用户的 Token,就像我们请求需要验证用户身份的接口一样。
加了,兄弟!
修改了 auth.middleware.ts ,然后只在 index.ts 这个文件里调用了一下。其他文件没有调用?那这个 currentUser 在 vue 里怎么用呢? 后端没有一个返回当前登录用户的接口吗?
我看话只看一半,只看见修改 auth.middleware.ts 这个文件。没有看到在全局里调用。现在全局里调用了就好了。
不过 vue 怎么用呢?验证当前用户的接口是什么呢??现在 vue 里,我已经可以登录后获取到 token 了,而且在浏览器 localStorage 可以看见 token 了。接下来在 vue 里找个地方,比如 app.ts 里写点东西,获取到用户,然后用本地 localStorage token 来和后端比对,返回该 token 的用户信息,在前端页面上显示登录后的页面。
我前端没有使用Vue,我使用的是flutter哈!不过原理应该都是一样的,currentUser 中间是全局的,也就是你在所有的请求里都可以获取到user的信息,如果,你需要验证是否只有登录了才能请求的话,就在路由里加上 authGuard 中间件,例如,点赞,这个需要登录之后才能操作,再例如,获取文章列表不需要登录。
currentUser
authGuard
这个具体的如何使用要看业务需求,你在前端向后端发起请求时,在 header里带上 token 信息, authGuard 就会判断是否有登录。
header
token
const response = await apiHttpClient.post('/user', { headers: { Authorization: 'Bearer ' + localStorage.getItem('token'), }, });
我 vue 这么写,不过那个/user 后端应该有个 /user 接口吧?这个接口 /user, 中间件是 currentUser, 那是不是还要写个 user 的控制器? 目的就是根据 token 返回该 token 的用户信息
好像写了个