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

现在我是未登录的状态 ... 可以先试着打开一个内容的编辑界面 ... 会被重定向到登录页面 ... 输入用户名 ... 密码 .. 确认登录 ... 成功以后会把用户重定向到这个用户页面上 ... 现在我想用户登录以后,可以把他重定向到他原本要访问的页面 ..

回到项目 .. 打开 hooks.js ...

这里之前我们处理了应用里的 InvalidSessionException .. 发生这个异常就把用户重定向到登录页面 .. 在这个异常的处理方法里面,可以把用户原来要访问的页面地址保存在 session 里面 .. 在方法里,把 session ... 还有 request 拿出来用一下 ..

然后用一下 session 的 put ... 存储的数据的名字可以叫 redirectUrl ... 对应的值用一下 request.url() ,它会返回用户访问的页面地址 ..

下面再 await session.commit() ...

AuthController.js

再处理一下登录方法 .. 打开 AuthController ... 在这个控制器里面,处理登录请求用的是 auth 这个方法 .. 你会发现,登录成功以后,会把用户重定向到用户页面上 ..

在这个方法的参数里,先把 session 拿出来用一下 ...

登录成功以后 .. 添加一个 redirectUrl .. 用一下 session 的 get .. 得到 redirectUrl ..

下面再判断一下 ... 如果 redirectUrl ,意思就是 session 里的 redirectUrl 有值 .. 我们先删掉这个数据 .. session.forget ... 名字是 redirectUrl ..

然后再 return 一个重定向 ... response.redirect ... 地址就是 redirectUrl ..

试验

回到浏览器,可以再试一下 .. 先退出登录 ...

打开一个内容页面 ... 试着打开它的编辑页面 .. 会触发 InvalidSessionException ... 在这个异常的处理方法里面,会把用户带到登录页面 ... 在用户 session 里添加一个 redirectUrl 数据,值就是用户之前要访问的页面地址 ..

输入用户名 ... 密码 .. 再登录一下 ... 成功以后,会把用户带到他之前想要访问的这个页面上 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值