登录认证
GET /cas/login?service={service}
| 参数 | 类型 | 说明 |
|---|---|---|
| service | string | 值为绝对的 URL 地址。登录成功后,跳转回的原始地址路径前缀。 |
说明:
- 用户通过浏览器访问目标网站时,网站没有发现有效的会话信息需要把用户的浏览器重定向到上面的地址,同时带上 service 信息
- 认证通过后会把浏览器重定向到 service 指向的站点进行下一步验证
此方法是为浏览器提供的,目标网站不需要直接访问
验证 ticket
GET /cas/serviceValidate?ticket={ticket}&service={service}
| 参数 | 类型 | 说明 |
|---|---|---|
| ticket | string | 上一个 API 获取到的 ticket 值 |
| service | string | 上一个 api 传递的 service 的值,必须完全相同,否则验证会失败 |
返回结果
- 成功返回的结果
<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
<cas:authenticationSuccess>
<cas:user>{username}</cas:user>
<cas:attributes>
<cas:data>{id: 123, name: '张三', phone: '12345678901'}</cas:data>
</cas:attributes>
</cas:authenticationSuccess>
</cas:serviceResponse>
- 失败返回的结果
<cas:serviceResponse xmlns:cas="http://www.yale.edu/tp/cas">
<cas:authenticationFailure code="{code}">message</cas:authenticationFailure>
</cas:serviceResponse>
说明
- 上一步浏览器被重定向到原站点时,重定向地址为
{service}/validate?ticket={ticket}。ticket 是登录成功后由认证中心生成的一次性的验证凭据 - 原网站需要能接收上述地址的请求,提取出 ticket 值后由目标网站后台服务发送验证信息给认证中心
- 认证中心收到验证请求会返回验证成功或失败的结果
- 如果验证失败应该立即结终止请求,并把失败信息告知用户(例如重定向到错误提示页)。让用户决定是否再次从第一步开始重新认证
- 如果验证成功,则从验证返回的结果里提取出用户的登录信息,同时建立网站内的登录会话信息。后续验证只从本网站内的会话中提取,认证中心不再参与
此方法是为目标网站后端服务提供的,浏览器不能直接访问
注销登录
GET /cas/logout?service={service}
| 参数 | 类型 | 说明 |
|---|---|---|
| service | string | 值为绝对的 URL 地址。退出登录后需要浏览器重定向的地址。如果没有传该参数,则注销后会转向认证服务器上的一个注销成功的页面 |
说明
- 退出登录的操作由浏览器向目标网站发起 logout 请求,目标网站处理完成后再重定向到身份认证服务的 logout 地址,连同一起注销身份认证的登录信息
此方法是为浏览器提供的,目标网站不需要直接访问