您的位置:首页 > 其它

淘淘商城系列——单点登录接口文档分析

2017-06-13 16:17 260 查看
在工作当中,开发文档是我们开发人员最重要的开发指南,对开发文档一定要认真研读,不可错过任何重要信息,我们现在学单点登录(SSO)也需要学习下开发文档。

我们先来看文档的第一个接口(注册接口):检查数据是否可用,如下图所示。文档中明确地给出了请求的类型是GET请求,URL地址也给我们规定好了,
http://sso.taotao.com
是域名,user/check/代表检查用户合法性。{param}/{type}是指要检查的参数及类型,param是可选参数,可以分别代表username、phone、email,当param代表username时type的值传1,当param代表phone时type的值传2,当param代表email时type的值传3。可选参数callback可以用于支持跨域解决js请求的问题(这个我们后面会学,不急)。返回值参数都给我们定好了,status代表状态码,msg代表返回的消息,data代表用户所传参数是否可用,我们最常用的TaotaoResult便刚好满足返回值的条件。



http请求肯定是在客户端写的,而客户端是需要服务端接口支撑的,现在我们便实现服务层接口开发及发布服务。

我们首先来看下数据来源,我们所要检查的用户数据都存储在tb_user表中,我们检查一下用户名、电话、邮箱是否合法,如果在用户表中已经有了,那么就是非法的了,如果用户表中没有相同记录,那么就合法。由于是单表操作,因此我们使用逆向工程生成的dao层代码即可。



接下来我们就要编写Service层的代码了。我们在UserRegisterService接口中编写方法——
TaotaoResult checkUserInfo(String param, int type);
,如下图所示。



之后我们在taotao-sso-service工程中编写UserRegisterService接口的UserRegisterServiceImpl实现类,如下图所示。



为方便大家复制,现将UserRegisterServiceImpl实现类的代码给出。

/**
* 用户注册处理Service
* <p>Title: UserRegisterServiceImpl</p>
* <p>Description: </p>
* <p>Company: www.itcast.cn</p>
* @version 1.0
*/
@Service
public class UserRegisterServiceImpl implements UserRegisterService {

@Autowired
private TbUserMapper userMapper;

@Override
public TaotaoResult checkUserInfo(String param, int type) {
TbUserExample example = new TbUserExample();
Criteria criteria = example.createCriteria();
// 判断要校验的数据类型,来设置不同的查询条件
// 1、2、3分别代表username、phone、email
if (type == 1) {
criteria.andUsernameEqualTo(param);
} else if (type == 2) {
criteria.andPhoneEqualTo(param);
} else if (type == 3) {
criteria.andEmailEqualTo(param);
}
// 执行查询
List<TbUser> list = userMapper.selectByExample(example);
if (list == null || list.size() == 0) {
return TaotaoResult.ok(true);
}
return TaotaoResult.ok(false);
}

}


下面我们便发布一下服务,如下图所示。即在applicationContext-service.xml配置文件中添加如下配置:

<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="com.taotao.sso.service.UserRegisterService" ref="userRegisterServiceImpl" timeout="300000" />




这样Service层的代码便编写完了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: