前言
单点登录简介我就不赘述了,直接上项目
注:本人是mac系统,windows的集群搭建请勿照搬。但java代码和操作系统是没有任何关联的。
这里使用的技术:
dubbo dubbo使用需要注册中心,点击链接可以先去操作即可
redis 为了实现高可用,点击链接去完成高可用配置
nginx nginx安装,点击链接去完成nginx安装
软件 idea,eclipse, Springboot tools suite都可以
注册功能
话不多,输入www.fxm.com进入首页,可以看到顶层导航栏,有登录注册按钮
注:这个域名是采用nginx反向代理技术,域名设置只需要修改 host文件即可,nginx配置文件我会粘在文末(太长了,放前面太占篇幅)
点击之后,会发现url分别为:
http://www.fxm.com/user/login.html
http://www.fxm.com/user/register.html
这里可以使用restful风格来完成页面跳转,核心代码如下:
@RequestMapping("/{moduleName}")
public String moduleName(@PathVariable String moduleName) {
return moduleName;
}
先从注册账号开始,输入用户名,按F12可以看到发送了一个jsonp请求,来校验用户名是否存在
http://sso.fxm.com/user/check/change/1?r=0.5500138217869801&callback=jsonp1589291294464&_=1589291309717
由于这是jsonp发请求到后台,所以直接在提供者的控制器里添加方法即可,核心代码如下:
@RequestMapping("check/{name}/{type}")
public JSONPObject checkUser(@PathVariable String name, @PathVariable Integer type,String callback) {
JSONPObject jsonpObject = null;
try {
boolean flag = ssoUserService.checkUser(name, type);
jsonpObject = new JSONPObject(callback, SysResult.success());
} catch