LogoutController(注销控制器)¶
cn.myapps.signon.auth.controller.LogoutController,类级 @RequestMapping("${myapps.context-path.signon:}")。提供前台用户注销:失效 session、清空登录相关 cookie 与 SSO cookie,并返回注销后应跳转的 URL。
控制器基址:
${myapps.context-path.signon:}(部署时替换;lite 统一打包下前缀多一层/signon)。下列「请求路径」为相对基址的路径。完整 URL ={signon-context}<相对路径>。鉴权:本控制器端点位于认证服务内,不要求 accessToken。
/api/logout.action不在PassFilter白名单(白名单含/api/runtime/logout、/runtime/logout等通用注销路径,但不含/api/logout.action),但CommonSecurityFilter不做 token 校验,仍可匿名访问(详见 index.md 鉴权说明)。响应形态:本控制器是 signon 模块**唯一使用统一
Resource结构**的控制器,由new Resource(0, errmsg, data, null)构造。
1. 注销登录¶
失效当前 session、清除登录 cookie(含 SSO cookie),返回注销重定向 URL。
- 接口类型:REST 资源
- 请求方式:
POST - 请求路径:
/api/logout.action(完整:{signon-context}/api/logout.action) - 鉴权:否
- Tag:signon(控制器未声明
@Tag)
请求参数¶
无。
请求示例¶
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。data 为注销后应跳转的 URL 字符串,由 getLogoutRedirect 计算:
authentication.type=sso时:取sso.logout.redirect配置,并附带?service=https%3A%2F%2Fauditms-uat.haid.com.cn%2Fsignon%2Fapi%2Flogin%2Fsso(注:service 参数为源码硬编码)。- 否则:
<contextPath>+getDispatchURL("/", request, response)(dispatch 会按 session 内SKINTYPE替换为H5等)。
注销副作用(由 LoginHelper.logout 执行):session.invalidate();清空 cookie verify_login、autologin、accessToken、isFromLogin,以及 sso.info.key.* 系列配置键对应的 SSO cookie。
成功示例:
注:控制器
getLoginUser方法签名为throws Exception,未捕获异常;若 session 已失效或 cookie 清理失败,异常将经CommWebMvcConfig注册的全局异常解析器CommonsExceptionResolver处理(不返回统一Resource)。