验证登陆后跳转原路径

近日新来的小同事问我,尚未登陆的跳转路径,被登陆拦截,登陆认证后如何跳转到原路径。第一想法是,request有request.getRequestURL(),首先保存起来,登陆验证后再跳转,感觉思路很清晰明了。因为我们项目安全框架使用的是shiro,这么高大上的组件,应该早就考虑到这小功能了,一看源码就明白了。

显然应该在Filter:authc中做这件事,

源码如下,显然shiro有这个功能,而且实现的没有一点侵入性:

记录一下,以供其他小伙伴参考一下。

转载于:https://www.cnblogs.com/render-inside/p/6390778.html

### HTML 登录成功后页面跳转的实现方法 在HTML中,可以通过JavaScript来实现登录成功后的页面跳转功能。具体来说,在用户提交表单并验证通过之后,可以利用`window.location.href`属性将浏览器重定向到目标页面。 以下是具体的实现方式: #### 表单提交与验证 创建一个简单的HTML登录表单,并绑定事件监听器以处理用户的输入数据。当用户点击“登录”按钮时,触发JavaScript函数进行身份验证[^1]。 ```html <form id="loginForm"> <label for="username">用户名:</label> <input type="text" id="username" name="username"><br><br> <label for="password">密码:</label> <input type="password" id="password" name="password"><br><br> <button type="submit">登录</button> </form> ``` #### JavaScript逻辑 编写一段脚本来拦截默认的表单提交行为,并执行自定义的身份验证过程。如果验证成功,则调用`window.location.href`完成页面跳转;否则提示错误消息[^2]。 ```javascript document.getElementById('loginForm').addEventListener('submit', function(event) { event.preventDefault(); // 阻止表单默认提交动作 const username = document.getElementById('username').value; const password = document.getElementById('password').value; if (validateUser(username, password)) { // 假设有一个 validateUser 函数用于校验用户凭证 window.location.href = 'shopcart.html'; // 跳转至购物车页面 } else { alert('用户名或密码不正确!'); } }); // 示例中的简单模拟验证函数 function validateUser(username, password) { return username === 'admin' && password === '123456'; } ``` 上述代码片段展示了如何捕获表单提交事件以及依据条件决定是否重新定位网页地址。 #### 动态参数传递 有时可能还需要携带某些查询字符串作为附加信息传送到下一个页面上。例如,记录路径以便于操作完成后能够来的位置。这种情况下可构建URL加上问号分隔符后面附带键值对形式的数据串。 ```javascript const returnUrl = encodeURIComponent(window.location.pathname); let targetUrl = "goToLogin-demo.html?returnUrl=" + returnUrl; window.location.href = targetUrl; ``` 此部分说明了怎样构造包含额外参数的目标链接地址并通过修改全局对象 `location` 的 `href` 属性来进行导航。 --- ### 注意事项 为了提高用户体验和安全性,请考虑以下几点建议: - 对敏感字段如密码采用HTTPS协议传输。 - 使用服务器端进一步确认客户端发来的认证请求而非单纯依赖端判断。 - 加密存储重要资料避免泄露风险。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值