概述
本博文针对的是开发分布式系统,登录和注册的功能都放到单点登录系统中完成,供其他系统调用。同时,当用户下订单时需要用户登录,使用拦截器实现用户登录。登录成功后跳转到用户要访问的页面。推荐和上一篇《企业WEB项目单点登陆系统实现》)一起食用更佳哦。
一、实现注册功能
1.需求分析
1、进行注册之前先进行数据的有效性验证。
a) 用户名不能重复
b) 确认密码和密码文本框的内容要一致。
c) 用户名、密码不能为空。
d) 手机不能为空 并且不能重复。
2、校验完成后注册。可以调用sso系统的注册接口完成注册。
2.数据校验
2.1打开注册页面
1 |
|
2.2js实现数据校验
2.3实现注册
二、实现登录功能
1.打开登录页面
回调url应该是通过一个参数传递给显示登录页面的Controller。参数名为:redirect
需要把回调的url传递给jsp页面。当登录成功后,js的逻辑中判断是否有回调的rul,如果有就跳转到此url,如果没有就跳转到商城首页。
1 |
|
2.数据校验
校验用户名密码必须输入。
3.用户登录
用户点击登录按钮把用户名和密码表单提交给登录接口,接收返回结果判断是否登录成功。
三、门户系统整合sso
在门户系统点击登录连接跳转到登录页面。登录成功后,跳转到门户系统的首页,在门户系统中需要从cookie中 把token取出来。所以必须在登录成功后把token写入cookie。并且cookie的值必须在系统之间能共享。
1.Cookie共享:
1、Domain:必须是相同的。例如有多个域名:
Sso.taotao.com
Search.taotao.com
需要设置domain为: .taotao.com
2、设置path:/
2.添加工具类
1 | package com.taotao.common.utils; |
3.在登录接口中添加写cookie的逻辑
4.首页取cookie信息
从cookie中取token,在页面中根据token取用户信息,调用sso系统的服务来完成。需要使用jsonp调用。
四、使用拦截器实现用户登录
1.需求分析
当用户下订单时需要用户登录,使用拦截器实现用户登录
1、需要实现HandlerInterceptor接口。
2、实现拦截逻辑
3、需要在springmvc.xml中配置。
配置resource.properties
1 | #单点登陆系统url |
2.用户登录Service
功能:根据token换取用户信息,需要调用sso系统的服务。返回TbUser对象。如果没有就返回null。
1 |
|
3.拦截器实现
1 | public class LoginInterceptor implements HandlerInterceptor { |
4.Springmvc.xml配置
1 | <!-- 拦截器配置 --> |
结语
我好菜😥淦