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 数据,值就是用户之前要访问的页面地址 ..

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/555023.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

端口号被占用:Disconnected from the target VM, address: ‘127.0.0.1:XXXX‘, transport: ‘socket‘

debug启动Spring boot项目的时候,项目没有启动起来。log最后一行,显示Disconnected from the target VM, address: ‘127.0.0.1:XXXX’, transport: ‘socket’。 解决方式!!! 1、看看是谁占用了我的端口号&#xff…

mysql截取字符串去重_mysql 截取字符串 去重 拼接

1:字符串截取LEFT(guid_,LENGTH(guid_) - 5)//1001-1002-1003 截取为 1001-10022:判断是否存在某字符串中IN(1001,1002,1003)// where id in(xxxx) 可以用查询的某个字段直接 where id in (select id from xxxx)3:根据某个字段去重复在查询结…

Linux系统tab自动补全快捷键的时候显示cannot create temp file for here-document: No space left on device解决方案

登陆linux系统之后,使用tab自动补全快捷键的时候显示:cannot create temp file for here-document: No space left on device。 原因:磁盘满了,不能创建临时文件。 解决方法:(逐级查看占用空间过多的目录…

python画二维数组散点图_2个numpy二维数组的散点图

IIUC,你不需要zip步骤:s (arr1.ravel(), arr2.ravel())plt.scatter(*s)plt.show()或者,你也可以通过策划arr1和arr2:plt.scatter(arr1, arr2)plt.show()原因是,通过压缩,可以创建许多坐标元组:>>> list(zip(*s))[(0.5233576831070681, 0.3622905772322086), (0.67714…

双表联查mysql_MySQL的双表多表联查

最近在做EC-Mall的二次开发,遇到这么一个需求,将挂件单独显示成一个页面。由于EC-Mall的挂件是用数据模块模块类库的方式进行的,就是使用类似smarty的形式。而单独一个页面的话,数据读取需要自己写SQL语句。 现在的问题是&#xf…

Linux命令——echo追加和覆盖

追加: echo " " >> 文件名覆盖: echo " " > 文件名ximong:~$ cat aa.sh #打印文件aa中原来的内容,显示aa aaximong:~$ echo bb >> aa.sh #  在文本末尾追加 ximong:~$ cat aa.sh aa bbximong:~$ echo cc >aa.sh…

如何安装mysql 匹配_学习笔记----安装MySQL

安装MySQL1.下载解压源代码包。我的是mysql 5.1.48版本的。2.添加mysql用户和组[roottigertall mysql-5.1.48]#groupadd mysql[roottigertall mysql-5.1.48]#useradd -g mysql mysq3.编译安装[roottigertall mysql-5.1.48]# ./configure --enable-assembler \--with-client-l…

Linux中的通配符

Linux中的通配符 Linux中的通配符 *匹配任意长度的任意字符,可以没有?匹配任意单个字符,至少有1个[ ]匹配指定字符范围内的任意单个字符[a-z,A-Z,0-9]匹配所有数字和字母[a-z]匹配a-z中的一个[A-Z]匹配A-Z中的一个[a-Z]匹配所有大小写字母[:upper:]所…

mysql区间段_解决针对MySQL中对于某一个区间段范围的数据更新的情况

(1)在使用更新update的过程中,我们可能会想要更新比如id段在某一个指定范围内的数据,如果我们是想要更新前面多少行的数据的话可以直接:UPDATE tb_name SET column_name‘value‘ ORDER BY id ASC LIMIT 20;比如我想要把下面的这个员工信息表…

SpringBoot实现执行sql语句打印到控制台

SpringBoot实现执行sql语句打印到控制台 1.简介 每当写完持久化语句时肯定免不了要查漏补缺一波。这里就可以将执行的sql打印到控制台来检查sql语句哪里出了问题。 2.配置 配置非常简单,只需要在配置文件中设置下mapper日志级别就可以了 application-test.prop…

Java 8 lamda Stream的Collectors.toMap 参数

java 8 lamda Stream的Collectors.toMap 参数 使用toMap()函数之后,返回的就是一个Map了,自然会需要key和value。 toMap()的第一个参数就是用来生成key值的,第二个参数就是用来生成value值的。 第三个参数用在key值冲突的情况下:…

Java8中的Collectors.groupingBy用法

Collectors.groupingBy根据一个或多个属性对集合中的项目进行分组 数据准备: public Product(Long id, Integer num, BigDecimal price, String name, String category) {this.id id;this.num num;this.price price;this.name name;this.category category; …

什么是CDN,有何作用?

cdn顾名思义是一个英文缩写,全称是contentdeliverynetwork(内容分发网络),即服务商通过在世界各地部署大量服务器节点,缓存源站静态资源(目标服务器),当用户访问时返回最优线路的资源…

BigDecimal中divide(除)方法注意问题_BigDecimal 判断大于小于

BigDecimal中divide方法抛异常: Non-terminating decimal expansion; no exact representable decimal resultIdea也会给出警告 原因是在做除法的时候出现了无限不循环小数如:33.333333333333 解决方案 在做除法的时候指定保留的小数的位数: BigDecimal rate …

python 字符串操作速度_强者一出,谁与争锋?与Python相比,C+的运行速度究竟有多快?|python|编程语言|字符串|示例|算法...

对于数据科学家而言,热爱Python的理由数不胜数。但你是否也曾问过这样的问题:Python和C或C等更专业的低级编程语言究竟有何不同呢?我想这是很多数据科学家或者Python用户曾经问过或者将来会问自己的问题。Python和C类语言之间存在许多区别,本…

Maven私有仓库、上传jar包、引用私服jar包、上传本地项目到私服_将已有jar包部署到私服

Maven私有仓库、上传jar包、引用私服jar包、上传本地项目到私服 搭建私有服务器 前面已经说过了,我们使用Maven的使用,如果需要导入相对应的jar包,Maven首先会在我们的本地仓库中寻找—>私有仓库—>中心仓库… 然而,我们…

java水泡_JAVA图像处理系列(八)——艺术效果:水泡

艺术效果水泡通过对图像进行变形或叠加其他图片,能够实现许多有趣的艺术效果,本文介绍类似水泡效果的实现方式,下面先看一下实现的效果。第一张为原始图像,第二张为叠加水泡效果的图像。cat.jpgcat_belb.jpg算法原理图像中的水泡效…

SpringBoot中调用第三方接口的三种方式

使用SpringBoot跨系统调用接口的方案 一、简介 项目开发中存在系统之间互调问题,又不想用dubbo,这里提供几种SpringBoot方案: 1、使用Feign进行消费(推荐) 2、使用原始httpClient请求 3、使用RestTemplate方法 二…

java读word_java读word文件(示例代码)

Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。1.读取word 2003及word 2007需要的jar包读取 2003 版本(.doc)的word文件相对来说比较简单,只需要 poi-3.5-beta6-20090622.jar 和 poi-scra…

Dubbo调用远程服务详解_导入jar方式

Dubbo调用远程服务 1.创建公共接口模块api 公共接口主要用于存放接口对象,这里我们只创建一个服务层的接口IndexService用于远程调用服务的测试 package com.example.dubboapi.service;public interface IndexService {String echo(); }