一、背景
单点登录Single Sign On,简称SSO,是目前比较流行的企业业务整合的解决方案之一。主要用于当公司内部存在非常之多的系统时,便于员工使用方便,统一整合登陆,即在众多系统中,登陆一次,既可以访问其他相互信任的应用系统。
二、基本流程
-
用户访问CMS系统,根据localstorage里的token判断用户是否登陆,登录则进入相应业务模块,未登录则跳转sso登陆系统。
-
跳转到CAS server,即SSO登录系统。 SSO系统也没有登录,弹出用户登录页登陆。
-
用户填写用户名、密码,SSO系统进行认证后,会生成一个ST(Service Ticket),然后跳转回CMS系统,同时将Ticket作为参数传递给CMS系统。
-
CMS系统拿到Ticket后,从后台向SSO发送auth请求,验证Ticket是否有效。
-
验证通过后,CMS系统将返回的token及用户信息写入localstorage,进入业务模块,并通过拦截器在每次请求的Header里添加auth信息作为Cookie。
-
验证未通过,跳转无权限页面。
三、前端部分代码
拦截器部分
备注:
此方案为CAS接入,基于JWT(Json Web Token)
用户权限信息维护与CAS server端,前端使用ticket发起权限校验时一并返回角色信息
koa实现session及token登录方式:segmentfault.com/a/119000002…
前端基于VUE框架