下次自动登录(Remember Me)功能

1、自动登录是否有必要?
2、初期是否默认选中?
3、保存时间大概有多久?
4、是否应该提示用户有安全风险?
5、是否有必要采用高级的安全控件?

关于认证,stackoverflow上一篇很全的讨论 [url=http://stackoverflow.com/questions/549/the-definitive-guide-to-form-based-website-authentication]The definitive guide to form based website authentication[/url]

[color=blue][b]Google+[/b][/color]
[img]http://dl2.iteye.com/upload/attachment/0090/0486/a93efbfc-51d8-31a4-b777-00227ec17388.png[/img]
[color=blue][b]Facebook[/b][/color]
[img]http://dl2.iteye.com/upload/attachment/0090/0484/f874ecc1-7f81-34f9-ba32-1021af25d7b6.png[/img]
[color=blue][b]Twitter[/b][/color]
[img]http://dl2.iteye.com/upload/attachment/0090/0488/edac71f8-3f6d-3552-ac5f-957475dd8e69.png[/img]
[color=blue][b]人人网[/b][/color]
[img]http://dl2.iteye.com/upload/attachment/0090/0490/5a80ebbf-6b1b-3e17-a33c-b5f984d56035.png[/img]
[color=blue][b]新浪微博[/b][/color]
[img]http://dl2.iteye.com/upload/attachment/0090/0492/50fe25e6-e727-3a58-a01e-60c386f1e48d.png[/img]
[color=blue][b]当当网[/b][/color]
[img]http://dl2.iteye.com/upload/attachment/0090/0494/0e39d1d2-aaf0-30ea-8f64-b8f2aac9a2ed.png[/img]
[color=blue][b]京东[/b][/color]
[img]http://dl2.iteye.com/upload/attachment/0090/0496/69aa80e1-44b1-30ed-921b-59baf2163d34.png[/img]
[color=blue][b]淘宝[/b][/color]
[img]http://dl2.iteye.com/upload/attachment/0090/0498/bcaedb8c-3f04-32e9-a0ae-745e18e06f76.png[/img]
[color=blue][b]乐视网[/b][/color]
[img]http://dl2.iteye.com/upload/attachment/0090/0500/6b51f424-3d8d-3afd-b934-ce1df1f55f33.png[/img]
[color=blue][b]优酷[/b][/color]
[img]http://dl2.iteye.com/upload/attachment/0090/0502/ffe950c7-6b38-31c8-8eff-a60fcb8b58f6.png[/img]
[color=blue][b]携程[/b][/color]
[img]http://dl2.iteye.com/upload/attachment/0090/0504/33580d25-cf06-3879-b27f-a0aaedf2aedd.png[/img]
[color=blue][b]去哪儿[/b][/color]
[img]http://dl2.iteye.com/upload/attachment/0090/0506/462468dc-db0e-31de-af90-3767581e9f24.png[/img]
[color=blue][b]赶集[/b][/color]
[img]http://dl2.iteye.com/upload/attachment/0090/0508/2ce088b9-d749-30f2-bdbb-494c3164cbfb.png[/img]
[color=blue][b]58同城[/b][/color]
[img]http://dl2.iteye.com/upload/attachment/0090/0518/38166983-65b4-3be3-a9f5-9ea1e043fc5c.png[/img]
[color=blue][b]大众点评[/b][/color]
[img]http://dl2.iteye.com/upload/attachment/0090/0510/9a625d6e-bc73-3e6c-99e6-c560990ed65a.png[/img]
[color=blue][b]豆瓣[/b][/color]
[img]http://dl2.iteye.com/upload/attachment/0090/0512/bba5a47a-afdd-3b66-919e-fb1d4a07b5de.png[/img]
[color=blue][b]知乎[/b][/color]
[img]http://dl2.iteye.com/upload/attachment/0090/0514/0e5551fc-a459-3698-8339-953c5c74bac9.png[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Security提供了Remember-me功能来让用户在下次访问时无需重新登录。要启用Remember-me功能,可以按照以下步骤进行配置: 1. 在Spring Security配置文件中启用Remember-me功能,例如: ``` http .rememberMe() .key("remember-me-key") .rememberMeParameter("remember-me") .tokenValiditySeconds(86400) .userDetailsService(userDetailsService); ``` 其中,key是用来加密Remember-me cookie的密钥,rememberMeParameter是用来接收Remember-me cookie的请求参数,tokenValiditySeconds是Remember-me cookie的有效期,userDetailsService是用来根据用户名获取用户信息的服务。 2. 在登录页面中添加Remember-me的复选框,例如: ``` <input type="checkbox" name="remember-me" value="true" /> Remember me ``` 3. 在登录成功后生成Remember-me cookie,例如: ``` @RequestMapping(value = "/login", method = RequestMethod.POST) public String login(@RequestParam("username") String username, @RequestParam("password") String password, @RequestParam(value = "remember-me", required = false) boolean rememberMe, HttpServletResponse response) { // 验证用户名和密码 // ... // 生成Remember-me cookie if (rememberMe) { TokenBasedRememberMeServices rememberMeServices = new TokenBasedRememberMeServices("remember-me-key", userDetailsService); rememberMeServices.setTokenValiditySeconds(86400); rememberMeServices.setAlwaysRemember(true); rememberMeServices.loginSuccess(request, response, authentication); } // ... } ``` 其中,如果用户勾选了Remember-me复选框,则调用TokenBasedRememberMeServices的loginSuccess方法生成Remember-me cookie。 4. 在下次访问时验证Remember-me cookie,例如: ``` http .csrf().disable() .authorizeRequests() .antMatchers("/admin/**").hasRole("ADMIN") .antMatchers("/user/**").hasAnyRole("USER", "ADMIN") .anyRequest().authenticated() .and() .formLogin() .loginPage("/login") .permitAll() .and() .rememberMe() .key("remember-me-key") .rememberMeParameter("remember-me") .tokenValiditySeconds(86400) .userDetailsService(userDetailsService); ``` 其中,Remember-me cookie会在每次请求时被自动验证,如果验证通过,则用户会被认为已经登录

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值