已经登录成功了,在页面js后退页面同时刷新时还是会退到登录页面,怎么解决

大家是如何解决登录后,点击浏览器的返回按钮又回到登录页面的问题 - CNode技术社区
这家伙很懒,什么个性签名都没有留下。
新手,用express+ejs做了个项目,点击需要登录权限的页面跳到登录页面(res.redirect(/login?redir=${req.originalUrl});),登录成功后,回到之前的页面,当点击浏览器的返回按钮或者执行(history.go(-1))的时候,又回到登录页面,再次点击回到未登录状态的上上个页面,刷新下就好了。
对吗你都说了,登陆成功。
你后台会写一个session存数据库或者redis或者其他地方吧。
你可以使用本地存储 cookie、localStorage本地存储,存储用户信息,接在在每次进入页面的时候执行脚本,判断有否存在用户信息,存在在重定向回去,不存在就啥都不干!
其实把你后台可以做限制的,登陆过后的用户不允许注册、登陆,尚未登陆的用户不允许退出。
第一次写express+ejs项目,没有用到session存数据库或者redis,目前就是把sid存到cookie中了,“接在在每次进入页面的时候执行脚本,判断有否存在用户信息,存在在重定向回去”,这个每次进入页面执行脚本是写在哪里呢?点击返回没有走后台的路由router.get(’/’),是在ejs模板里面判断吗?
你可以在在 login.ejs 、 register.ejs中写一段js脚本,判断用户是否登陆并存入本地存储中,通过前端拦截是否跳转。
如果后台限制请这么做比如:
// 登陆路由
module.exports = login(req,res,next){
var username = req.body.
var password = req.body.
验证User;
User.findOne();
// ps 这里req.user存储用户登陆信息,你也可以存token等。
req.user.session =
// 是否登陆验证
module.exports = isLogin(req,res,next){
if(!req || !res)
if(!req.user.session){
// 未登陆
return next();
// 已登录
return res.redirect('/');
// 路由 Router
var isLogin = require('./isLogin');
var login = require('./login');
app.get('/login', isLogin, login );
谢谢,学习了,试试
一样,共勉
使用参数,加一个refer
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的豆丁微信公众号
君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
如何实现用户退出功能退出后按浏览器后退按钮,返回的是用户登录界面
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口选择重新登录,跳到登录页面,但是我按后退按钮,有重回到了页面,怎么解决呢_百度知道
选择重新登录,跳到登录页面,但是我按后退按钮,有重回到了页面,怎么解决呢
我有更好的答案
选择重新登录的时候把原来的窗口隐藏起来再显示登录页面,后退的时候再把原窗口显示出来?
能具体一点 吗,不明白你说的什么意思,我说的后退是菜单栏的本来有的后退按钮
采纳率:42%
来自团队:
为您推荐:
其他类似问题
登录页面的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。&  在开发中可能会有这样的需求:在登录成功后不想让用户再返回到登录页,支付成功后不想用户再返回到支付页。
&  之前开发过hybrid app和流应用,他们的处理机制是,登录成功后,杀死登录页。最近在开发微信公众号,我就在想h5能不能也做到类似的效果,避免回退到不想出现的页面。单页面应用,总不能自杀,或者让组件隐藏吧,就百度了一下,还真找到了相关的api。
  HTML5为history对象添加了两个新方法,history.pushState()和history.replaceState(),用来在浏览历史中添加和修改记录。var stateObj = { foo: "TEST" }; history.pushState(stateObj, "page 1", "test.html");这种方法将会使你当前的url地址变为https://i.cnblogs.com/test.html,但浏览器不会加载https://i.cnblogs.com/test.html页面,即使这个页面存在也不会加载。现在再次假设用户继续访问http://www.baidu.com,然后点击后退。这时,url地址栏将会,https://i.cnblogs.com/test.html,
&history.replaceState()&用起来很像pushState(),除了replaceState()是用来修改当前的history实体而不是创建一个新的。这个方法有时会很有用,当&你需要对某些用户行为作反应而更新一个state对象或者当前history实体时,可以使用它来更新state对象或者当前history实体的url。
  是不是看到这儿有点懵了,用起来会清爽一点
router.push(location) history中会有记录
router.replace(location) history中不会有记录
router.go(n) 在history记录中向前跳转几页或者向后几页
  &router.push、&router.replace&和&router.go&跟&好像, 实际上它们确实是效仿&window.history&API 的。
  实际使用过程中
   link标签跳转时,添加:replace=true,即可以不保留历史记录跳转
   或者用
& & & & &router.replace({path: 'login',query:{})
   如果这些还不够用,router还有个钩子,beforeRouteLeave,这个是用在单独组件中的,监听组件离开当前页,包括返回键,如果用了这个钩子,不写要跳转的到的页面,连back都离不开这个页面
  按照你的需要,哪些页面不需要保存历史记录访问,哪些页面需要重写,捋一下就很清楚了,就不多说了。   
阅读(...) 评论()在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
浏览器上后退 window.history.go(-1) 总是返回上一页
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
每次的请求都要用session进行身份验证。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
window.location.replace
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
可以禁止A页面的缓存,每次都重新读取,并且可以通过在A页面对应的后台逻辑判断一下是否已经成功登陆,例如简单的就是判断一下session中是否有登录信息。具体的解决方法,可以查一下 ‘网页禁用浏览器返回功能’ 当然,也可以从JS这边入手,通过JS来限制,但是各种浏览器可能很头疼。登录这种功能最好做成ajax,可以防止表单重复提交,另外表单提交时可附带隐藏的token。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
解决这个问题的方法是:登陆页面设置为浏览器不缓存。就是写http头,指定浏览器是否缓存该页面private, no-store, max-age=0, no-cache, must-revalidate, post-check=0, pre-check=0,当然登陆页面还要判断登陆状态,已登录状态下就back
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
禁止浏览器缓存
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
请使用重定向跳到新页面,不要用history.go(-1)回退。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
楼上说的对,定向跳转,如果登录了,始终定向到B页面,只用没有登录才能看到A页面
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
使用重定向redirect
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
登录页面写个登录检测,已登录的就302到b页面
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
为什么我使用了重定向但是返回还是之前的页面
该答案已被忽略,原因:
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。

我要回帖

更多关于 vue登录成功跳转页面 的文章

 

随机推荐