学习主题:商品数据检索
创建ego-sso-web单点登录系统
谈谈对象单点登录系统的理解
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。
SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
描述实现单点登录的思路
用户登陆之后,将用户数据保存到redis数据库中,
同时将redis数据库中的键以cookie+json字符串的形式写入到客户端,
当访问其他系统时,将cookie中的key带入查询redis数据库进行验证,验证通过表示用户已经登陆。
用户名唯一性验证
谈谈用户名唯一性验证的实现思路
用户可以根据用户名,手机号或者Email进行验证,
如果数据库中已有数据,则表示验证失败,
如果数据库中没有数据表示验证成功
描述用户为唯一性验证响应到前台的数据格
@RequestMapping("/user/check/{param}/{type}")
@ResponseBody
public MappingJacksonValue userCheck(@PathVariable String param,@PathVariable Integer type,
@RequestParam(required=false) String callback){
EgoResult result = ssoUserService.loadUserByCondService(param, type);
MappingJacksonValue value = new MappingJacksonValue(result);
//处理jsonp数据响应格式
if(!StringUtils.isEmpty(callback)){
value.setJsonpFunction(callback);
}
return value;
}
用户注册_用户登录
描述用户注册的实现思路
用户输入用户的基本信息值后点击注册,后台进行用户信息的唯一性验证,
如果该用户已经存在则向浏览器发送一个注册失败的消息,如果唯一性验证通过,表示用户注册成功。
描述实现用户注册响应到前台的数据格式
![673897defe70d898002ad63a6f8dfd44.png](https://i-blog.csdnimg.cn/blog_migrate/ff72b1d0dfea8de822990b0a48380ad5.png)
获得用户登录状态
描述用户登录状态获取的实现过程
根据键值从redis数据库中获取数据,
如果键值正确则可以获取到用户信息,
如果键值错误则获取不到。
描述用户用户登录状态需要通过什么方式获取前端提交的什么参数
需要通过jsonp的方式获取前端提交过来的键值,根据键值查询redis数据库中的用户信息。
安全退出
描述实现用户安全退出的思路
根据前端传过来的键值删除redis数据库中的用户信息,
如果redis数据库中存有前端传过来的键值,则可以正确删除,否则删除失败,
同时,第一次正确删除之后,第二次再根据同样的键值去删除,同样删除失败。
说明发送用户安全退出,客户端需要提交什么参数?
由于后台是根据键值删除redis数据库中的用户信息。
所以客户端需要提交redis中保存用户信息的键值。