浏览器原生登陆验证实现
2017-05-16 19:57
645 查看
在登陆某些web系统时,浏览器会弹出一个类似confirm的登陆框,供用户输入用户名和密码,进行验证。
由于此登陆框不是js控制的,遍找了下其实现原理。
http header WWW-Authenticate
此header一般和401 http状态一起使用。
1、服务端回向浏览器发送头信息,
WWW-Authenticate: Basic realm=“.”
2、浏览器收到后,便会弹回登陆框。填写完成确定后,请求头会包含,
Authorization: Basic YWRtaW46YWRtaW4=
其中Basic后面的信息,是"用户名:密码"的base64编码形式,用户名和密码使用半角冒号分隔
3、服务端收到请求后,获取Authorization头信息,并对其中的用户信息进行验证,并向浏览器注入cookie。
由于此登陆框不是js控制的,遍找了下其实现原理。
http header WWW-Authenticate
此header一般和401 http状态一起使用。
1、服务端回向浏览器发送头信息,
WWW-Authenticate: Basic realm=“.”
2、浏览器收到后,便会弹回登陆框。填写完成确定后,请求头会包含,
Authorization: Basic YWRtaW46YWRtaW4=
其中Basic后面的信息,是"用户名:密码"的base64编码形式,用户名和密码使用半角冒号分隔
3、服务端收到请求后,获取Authorization头信息,并对其中的用户信息进行验证,并向浏览器注入cookie。
String auth = request.getHeader("Authorization"); if (StringUtils.isEmpty(auth)) { response.addHeader("WWW-Authenticate", "Basic realm=\".\""); response.setStatus(401); } else { auth = new String(Base64.getDecoder().decode(auth)); String name = auth.substring(0, auth.indexOf(":")); String password = auth.substring(auth.indexOf(":") + 1); }
相关文章推荐
- Spring从菜鸟到高手(四)(上)使用JdbcTemplate类实现用户登陆验证、批量更新
- 在同一个页面中实现登陆验证进入聊天室功能
- ASP.NET Forms验证 实现子域名(SubDomain)共享登陆下的缺陷
- asp.net实现form验证登陆
- CAS实现http验证的单点登陆
- 用户登陆与验证的简单实现
- extJs+json实现的一个登陆验证的简单例子
- Struts实现注册(登陆)的验证过程
- 利用web.config来实现登陆验证[测]
- 实现类似于wp的后台的登陆摇头效果和ajax提交验证的效果
- 用jsp实现session登陆时间的验证.相当与一个监听器
- jsp实现客户登陆的简单验证
- 在TOMCAT下实现基于表单验证的登陆方式
- ASP.NET Forms验证 实现子域名(SubDomain)共享登陆下的缺陷 [转]
- java中javax.servlet.Filter这个接口实现登陆验证之类得说明
- 使用filter过滤器实现登陆权限验证
- Spring从菜鸟到高手(四)(上)使用JdbcTemplate类实现用户登陆验证、批量更新
- 利用web.config来实现登陆验证
- MVC2+EF实现简单的数据登陆和注册验证
- 一个基于wap1.0的web项目(图文)--实现登陆验证