前端系统登录控制
2017-02-07 14:39:59 0 举报
前端系统登录控制是一种安全机制,用于保护用户数据和系统资源。它通常包括用户名和密码验证,以及对用户角色和权限的管理。在登录过程中,系统会检查用户输入的用户名和密码是否与数据库中存储的信息匹配。如果匹配成功,用户将被授权访问系统;否则,将显示错误消息并拒绝访问。此外,系统还可以根据用户的角色和权限来限制他们对系统中不同功能和数据的访问。例如,管理员可以访问所有功能和数据,而普通用户只能访问部分功能和数据。总之,前端系统登录控制是一种有效的安全措施,旨在保护用户数据和系统资源免受未经授权的访问。
作者其他创作
大纲/内容
token的含义1.serviceToken:用户要有某个service服务登录的权限。2.passToken:证明用户在passport登录过,用于使用passport其他接口3.authToken:passport和service的认证。用于callback到sts时,验证是否为真实请求
输入用户名 密码
小米单点登录文档: http://passport.d.xiaomi.net/doc/sso/%E6%80%8E%E4%B9%88%E6%A0%B7%E6%8E%A5%E5%85%A5SSO.html
server(包括stsservlet)
用户登录页面用户输入登录信息
MiAccountStsServlet
loginUserCache
init()service()
save cookieuserIdcUserId 加密的userIdopen-api-dev_serviceTokenopen-api-dev_slhSet-Cookie:cUserId=vDivVVy7q2lloQaeURvi071s7eA; domain=.36.101; path=/Set-Cookie:open-api-dev_serviceToken=XSANg5HUuSEX6inNa1nR5+DE/+qJbGq1uVIUjPIapr1DP+nRI+/uJ8Z3P5c4sxv9NZtKA3sFI/a0OAc1x8/fE3SOmHK6GR2NtdnVi67XlKQ=; domain=xiaomi.com; path=/Set-Cookie:open-api-dev_serviceToken=XSANg5HUuSEX6inNa1nR5+DE/+qJbGq1uVIUjPIapr1DP+nRI+/uJ8Z3P5c4sxv9NZtKA3sFI/a0OAc1x8/fE3SOmHK6GR2NtdnVi67XlKQ=; path=/Set-Cookie:cUserId=vDivVVy7q2lloQaeURvi071s7eA; path=/Set-Cookie:userId=100008068; path=/Set-Cookie:open-api-dev_slh=W5wQq+2yrav/G11uVFAJU4Vagn8=; domain=.36.101; path=/
LoginRequired
注解:标注该注解的类或方法需要登录验证
302 redirect
http://10.237.36.101:8004/login?follow_up=http%3a%2f%2f10.237.36.101%3a8004
HttpServlet
+ attribute1:type = defaultValue+ attribute2:type- attribute3:type
client
登录验证
登录验证详细流程
http://account.preview.n.xiaomi.net/pass/serviceLogin?callback=http%3A%2F%2F10.237.36.101%3A8004%2Fsts%3Fsign%3DP1GZDGB9cHQcrxwbbQwS9bG7vx8%253D%26followup%3Dhttp%253A%252F%252F10.237.36.101%253A8004&sid=open-api-dev
参数:callbacksign:防止followup被篡改followupsid通过 STSHellper 构造
http://10.237.36.101:8004/login?follow_up=http%3a%2f%2f10.237.36.101%3a8004follow_up:在哪个页面登录的,就应该跳转回哪个页面整个流程中followup永远跟随三个实体:client server passport
MiAccountPassportFilter
authcRequireUrls 需要做登录验证的urls
initdoFilter
任何需要登录的页面 都会判断是否有serviceToken
PaServiceConfiguration
pss 配置参数实体
passportLoginUrlserviceSchemeserviceUrlsid
LoginRequiredUrlScanner
scanPackages
filterAuthcUrls 查找需要登录验证的所有urls
request参数:signfollowuppwdusrauth:用户加密信息,解密后包括 userId timestamp ssecurity nonc score mask_ssign
serviceToken 用于之后的已登录验证userId 用于之后获取userId
302 redirectpass 会让client调用callback地址
请求followup
STSHellper.saveCookieAfterValidate保存cookie
response.sendRedirect(redirectUrl);浏览器跳转
passport.propassport.login.url account地址service.url callback地址
passport
tokenHelper.checkAuthToken(authToken)解密auth信息
pss server 会跳转到callback地址10.237.36.101:8004/sts
MiAccountLoginServlet重定向到account
生成servcieToken种cookie302 redirect followup
http://10.237.36.101:8004/login?follow_up=http%3a%2f%2f10.237.36.101%3a8004登录成功后跳转到10.237.36.101:8004
http://open.preview.be.mi.com:8004/sts?userId pwd followup 等
STSHellper
生成accountUrl
genPassportLoginUrl
STSHellper.genPassportLoginUrl构造callback并加/sts 后缀
登录验证粗略流程
其他关键参数callback:sts回调地址,用于统一登录后的跳转。stsServlet:会进行参数认证并植入cookie
0 条评论
回复 删除
下一页