APEX中实现动态登出后跳转URL的方案
CI/CDOracle APEX单点登录认证方案部署管理
原文地址: https://blog.cloudnueva.com/dynamic-post-logout-urls-in-apex
# 在 APEX 中实现动态登出后跳转 URL

## 背景
使用社交登录等单点登录认证方案时,需要在 APEX 中定义登出后跳转 URL(Post-Logout URL),以便认证提供者在完成登出后将应用重定向到公共页面。不同环境(DEV/TEST/PROD)的实例 URL 不同,导致登出 URL 需要随部署环境手动修改。

## 解决方案
### 1. 创建应用项
创建名为 `AI_POST_LOGOUT_URL` 的应用项存储登出 URL:

### 2. 创建应用设置
创建名为 `POST_LOGOUT_URL` 的应用设置,并启用升级保留值选项:

### 3. 会话初始化时填充应用项
在「认证后」应用流程中设置应用项值:
```sql
BEGIN
apex_session_state.set_value
(p_item => 'AI_POST_LOGOUT_URL',
p_value => apex_app_setting.get_value('POST_LOGOUT_URL'));
END;
```

### 4. 配置认证方案
将认证方案的登出URL设置为应用项值:

## 替代方案
可使用自定义表存储各环境URL,但应用设置更符合APEX标准且安全可控。
## 结论
该方案有效解决了社交登录场景下登出URL的跨环境动态配置问题,消除了部署时的手动修改步骤。