用户在系统手动退出(如点击右上角「退出登录」)后,浏览器直接打开一个链接(<a href={hrefUrl}>),请求会带上当前账号中心的 Cookie;前端按环境拼 hrefUrl,实际访问地址如下:
|
条件 |
实际访问地址 |
|---|---|
|
|
|
|
其他情况(含 SAAS、或未配 OP 登出) |
|
流程一:redirect/logout(常见路径)
redirect 参数由发起退出的前端页面拼入,取值规则如下(拼入 redirect/logout 前通常需 URL 编码,具体以各前端实现为准):
|
条件 |
发起退出的页面 |
|
|---|---|---|
|
企业已配置 |
— |
读到该配置后写入 |
|
未配置企业登出地址 |
账户中心 |
|
|
未配置企业登出地址 |
元素 / 应用内 |
|
浏览器 GET {账号中心}/oauth/login/redirect/logout?redirect={上表取值}&enterpriseCode={企业编码},携带 Cookie(未配企业登出地址时带 enterpriseCode;已配 seeplnOutUrl 时通常只传 redirect)
后端校验 redirect 白名单(若配置了 logout.domain);若 logout.redirect.url.enable=false,接口返回 401
后端执行 logout():作废 token;OP 环境(sys.environment=OP)且已配置 op.logout.url 时,会先 POST 该地址(body 为 Cookie 中的 userInfo),用于通知外部登出;调用失败不阻断本地登出
清理账号中心 Cookie
302 重定向到参数 redirect 指定的地址
登出相关配置项如下(账号中心服务部署时,以 application-lease.properties 等为准):
|
配置项 |
写入方式 |
说明 |
|---|---|---|
|
|
调接口 |
配置后作为 |
|
|
环境变量 |
OP 环境走 |
|
|
环境变量 |
是否启用 |
|
|
环境变量 |
|
流程二:OP 且配置了 OPLogoutApiUrl
浏览器直接打开 OPLogoutApiUrl?redirect=...,不经过账号中心 redirect/logout
由 OPLogoutApiUrl 对应服务自行完成:调用第三方退出接口、清除先胜云 Cookie、执行最终重定向
用户中心 config.json 配置如下:
{
"environment": "OP",
"OPLoginConfig": {
"OPLogoutApiUrl": "/proinnova_sso/user/logout"
}
}
若退出后需调用第三方退出接口,须在 Nginx 配置 location /logout,将 /logout 统一转发/改写到 OPLogoutApiUrl 对应地址。
回到顶部
咨询热线
