用户登录

先退出登录 ... 再访问一下内容列表页面 ... 然后打开登录页面 .. 输入用户名 .. 密码 ... 登录一下 .. 这次会被重定向到我们前面访问的内容编辑界面上 ..

我希望的是把用户重定向到他之前访问的 posts ,也就是内容列表页面上 ..

可以这样 ... 在登录链接上,添加一个 redirect 查询符,把当前页面的地址作为这个查询符的值 ... 打开登录页面以后,可以得到查询符的值,然后把它放在用户的 session 里保存起来 .. 登录成功以后,就会把用户重定向到他之前要访问的页面上了 ..

回到项目 .. 打开 navbar 这个 partial ... 导航菜单我把它放在了这个 partial 里面了 .. 找到 Login 这个链接 ... 在链接地址里,再添加点东西 .. ?redirect= .. 后面绑定一个 url ... 它会返回当前访问的页面地址 ..

然后再打开 AuthController ... 找到控制器里的 login 这个方法 ... 如果用户没登录,这个方法会渲染一个登录视图 .. 在方法的参数里面,把 request ... 还有 session 拿出来 ..

方法里面,先从查询符里,把 redirect 这个查询符拿出来 .. const { redirect } ... request.get 这个方法可以返回所有的查询符的值 ..

下面判断一下 .. 如果 redirect ... 意思就是如果地址里的 redirect 这个查询符的值 .. 我们可以在 session 里存点东西 .. 用一下它的 put 方法 .. 数据的名字叫 redirectUrl .. 对应的值就是 redirect 这个查询符的值 ..

试验

回到浏览器再试一下 ... 先打开一个内容列表页面 ... 然后打开登录页面 .. 注意这次访问的页面地址里面,会包含一个 redirect 查询符 ... 它的值会被存储在用户的 session 里面 ..

输入用户名 .. 密码 ... 登录一下 ... 成功以后,就会把用户重定向到在 redirectUrl 这个 session 数据里面设置的地址上 ...

再试一下 ... 退出登录 ...

打开一个内容页面 ...

然后再打开登录页面 ... 输入用户名 .. 密码 .... 登录一下 ... 成功以后,会把用户重定向到他之前访问的这个内容页面上 ...

登录后重定向到用户原本要访问的页面(Query string)《 Node.js 应用:重构与改进 #3 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点