业务需要
当用户在注册时, 如果输出用户名, 则应该向 sso 单点登录零碎发动申请, 校验用户数据是否存在.
如果存在则提醒用户.
如果存在则提醒用户:
业务接口文档阐明
前端 JS 剖析
url 剖析
检索 JS 代码
JS 剖析
$.ajax({url : "http://sso.jt.com/user/check/"+escape(pin)+"/1?r=" + Math.random(),
dataType : "jsonp",
success : function(data) {
checkpin = data.data?"1":"0";
if(data.status == 200){if (!data.data) {validateSettings.succeed.run(option);
namestate = true;
}else {validateSettings.error.run(option, "该用户名已占用!");
namestate = false;
}
}else{validateSettings.error.run(option, "服务器正忙, 请稍后!");
namestate = false;
}
}
});
编辑 SSO UserController
/**
* 业务阐明:jt-web 服务器获取 jt-sso 数据,JSONP 跨域申请
* URL 地址:http://sso.jt.com/user/check/{param}/{type}
* 参数:param 参数,须要校验的数据,type 校验的类型
* 返回值后果:SysResult 对象
* 真是的返回值:callback(SysResult 的 JSON)*
*/@RequestMapping("/check/{param}/{type}")
public JSONPObject checkUser(@PathVariable String param,
@PathVariable Integer type,
String callback){
//true 示意数据存在,false 示意数据能够应用
boolean flag=userService.checkUser(param,type);
//int a=1/0; 测试 JSONP 全局异样
return new JSONPObject(callback, SysResult.success(flag));
}
编辑 sso-service
/**
* 判断根据:依据用户名查问,如果后果 >0 示意用户曾经存在
* @param param
* @param type
* @return
*/
@Override
public boolean checkUser(String param, Integer type) {// 将 type 类型转换为具体字段信息 1=username 2=phone 3=email String column=columnMap.get(type);
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
queryWrapper.eq(column, param);
Integer count = userMapper.selectCount(queryWrapper);
return count>0;//return count>0?true:false;
}
页面成果展现