egg(113)--egg之登录成功跳转到登录之前的页面
流程
- 点击登录按钮,前端把当前的url,传给后台
- 后台把url传给,登录页面
- 登录页面,点击登录,跳转到登录前的页面
效果
第一步
第二步
第三步
router
router.get('/login', initMiddleware, controller.default.pass.login);
点击登录按钮
view
appviewdefaultpublicheader.html
<li><a href="javascript:void(0)" id="loginButton" target="_blank">登录</a></li>
apppublicdefaultjsbase.js
initLogin: function() {$("#loginButton").click(function() {// alert(location.href);location.href = '/login?returnUrl=' + encodeURIComponent(location.href);})}
controller
appcontrollerdefaultpass.js
async login() {//获取returnUrlvar returnUrl = this.ctx.request.query.returnUrl;returnUrl = returnUrl ? decodeURIComponent(returnUrl) : '/';await this.ctx.render('default/pass/login.html', {returnUrl: returnUrl});}
登录页面
appviewdefaultpasslogin.html
<input type="hidden" name="returnUrl" id="returnUrl" value="<%=returnUrl%>" />
$("#doLogin").click(function(e) {var returnUrl = $('#returnUrl').val();var username = $('#username').val();var password = $('#password').val();var identify_code = $('#identify_code').val();var reg = /^[\d]{11}$/;if (!reg.test(username)) {alert('手机号输入错误');return false;}if (identify_code.length < 4) {alert('验证码长度不合法');return false;}//ajax请求$.post('/pass/doLogin', {username: username,identify_code: identify_code,password: password}, function(response) {console.log(response);if (response.success == true) {// location.href = "/";location.href = returnUrl;} else {$("#identify_code_img").attr('src', '/verify?mt=' + Math.random());alert(response.msg);}})})
去结算的登录跳转
中间件
appmiddlewareuserauth.js
module.exports = (options, app) => {return async function init(ctx, next) {//判断前台用户是否登录 如果登录可以进入 ( 去结算 用户中心) 如果没有登录直接跳转到登录var userinfo = ctx.service.cookies.get('userinfo');var prevPage = ctx.request.headers.referer; //上一个页面的地址if (userinfo && userinfo._id && userinfo.phone) {//判断数据库里面有没有当前用户 var userResutl = await ctx.model.User.find({ "_id": userinfo._id, "phone": userinfo.phone });if (userResutl && userResutl.length > 0) {//注意await next();} else {// ctx.redirect('/login');ctx.redirect('/login?returnUrl=' + encodeURIComponent(prevPage));}} else {// ctx.redirect('/login');ctx.redirect('/login?returnUrl=' + encodeURIComponent(prevPage));}};
};
效果
egg(113)--egg之登录成功跳转到登录之前的页面相关推荐
- 登录form php一个页面跳转页面,Extjs4中表单登录功能、登录成功跳转页面的代码...
本节内容: Extjs4实现的表单登录功能,登录成功跳转页面. 例子: 复制代码 代码示例: Ext.onReady(function(){ Ext.QuickTips.init(); Ext.cre ...
- Vue中使用axios的响应拦截器处理请求失败的情况(处理token过期问题)以及 登录成功跳转回原来页面问题
参考axios官方文档 // 响应拦截器 // Add a response interceptor request.interceptors.response.use(// 在2xx范围内的任何状态 ...
- 用php写登录成功后的界面,登录成功后跳转_php如何实现登录成功后跳转页面
摘要 腾兴网为您分享:php如何实现登录成功后跳转页面,指南针,优软商城,优美图,天天美剧等软件知识,以及蓝光mp3剪切器,微信6,scandallpro,新页生产管理软件,asmr音频,lc标签打印 ...
- php拦截登录页面跳转页面,PHP未登录自动跳转到登录页面
PHP未登录自动跳转到登录页面 下面一段代码给大家分享php未登录自动跳转到登录页面,具体代码如下所示: namespace Home\Controller; use Think\Controller ...
- 基于SSM的订餐系统---未登录则跳转至登录页面(过滤器实现)
问题分析 用户如果不登录,直接访问系统首页,照样可以正常访问 我们希望必须登录成功之后才能访问系统中的页面,如果没有登录则跳转至登录界面 使用过滤器或者拦截器,在过滤器或拦截器中判断用户是否已经完成登 ...
- 登录之后跳转到登录之前的页面 going to previous page after login
登录之前保存跳转过来的链接地址(带参数) Session::put('redir_url', URL::full()); return Redirect::to('user/login'); 登录之后 ...
- mysql的免密码登录_mysql免密码登录(mysql跳过密码登录)
mysql免密码登录(mysql跳过密码登录) 2020-05-15 13:07:13 共10个回答 1.用系统管理员登陆windows系统.2.停止MySQL的服务.3.运行cmd进入dos命令窗口 ...
- 怎么实现登录之后跳转到登录之前的页面?SpringMVC+Freemarker
项目中,想实现一个功能. 直接访问某个需要登录的url,比如/addArticle,可能会跳转到登录页面login.html. 登录成功之后,自动跳转到/addArticle这个登录前的页面,继续登录 ...
- Spring Security——实现登录后跳转到登录前页面
基本概念 暂无. 官方文档 https://docs.spring.io/spring-security/site/docs/5.3.1.BUILD-SNAPSHOT/reference/html5/ ...
最新文章
- spark为什么比hive速度快?
- C# JS URL 中文传参出现乱码的解决方法
- Spring Boot与Activiti集成实战
- 根据一级分类查询所有子级分类
- C# 页面关联类似模式窗口
- 微信小程序 - 基础 - 003 - WEUI - 基本表单组件 - form - 页面数据提交和获取 - 01
- 怎么一步一步的开一家公司?
- Processing中PDF格式输出
- 乔布斯斯坦福大学演讲pdf_演讲能力训练方法amp;优秀的演讲视频
- 好好工作,别想不开去创业。
- zcu106 固化_ZCU106的PYNQ移植
- 软路由虚拟服务器,带你入门软路由 篇三:软路由也玩虚拟化——轻松几步教你配置Esxi网卡直通和软路由虚拟机设置(保姆级教程)...
- 这几款超好用的协同办公软件,你都get了吗
- Photoshop CC 2017安装
- 计算机英语汇总(保持更新)
- 微信网址遮罩引导法升级版,微信自动跳转默认浏览器打开HTML
- Android中通过USB接口与和PC进行通讯的demo程序
- java gis地图开发视频_开源GIS视频教程
- 让我们红尘作伴活得潇潇洒洒
- 环洋市场调研-2021年全球抗衰老肽护肤品行业调研及趋势分析报告
热门文章
- 李彦宏:AI模仿人脑是走不通的
- AI一分钟 | 今天,百度又多了一个好基友华为,还互赠了信物;腾讯AI Lab“肢体动作追踪”技术造出了个“AI 尬舞机”
- Redis解决websocket在分布式场景下session共享问题
- 为什么要合并HTTP请求?
- 创业公司技术总监,去上市公司面试,结果凉了!
- 深度介绍分布式系统原理与设计
- Elasticsearch索引生命周期管理方案
- Netty实现心跳机制与断线重连
- 没有银弹,微服务架构改造的一条不归路。。。
- 经典面试题: 为啥 ConcurrentHashMap 读操作不需要加锁?