keycloak中对接oidc协议时设置prompt=login

prompt=loginOIDC(OpenID Connect)协议 中的一个登录请求参数,它的作用是 强制用户重新认证,即使浏览器或 SSO 中已经存在有效的会话。

具体解释如下:


1️⃣ 基本作用

  • 默认情况下,如果用户已经在 Keycloak 或第三方 SSO 上有有效会话:

    • 浏览器访问应用时,Keycloak 会自动使用现有 session 登录。
    • 用户不会看到登录页面,直接进入应用。
  • 当你在登录请求中加上 prompt=login

    • Keycloak 会忽略现有的 session。
    • 强制弹出登录页面,让用户重新输入用户名和密码。
    • 确保不会自动使用浏览器里的 SSO 会话。

2️⃣ 示例 URL

text 复制代码
https://<keycloak-server>/realms/<realm>/protocol/openid-connect/auth?
client_id=<client_id>
&redirect_uri=<redirect_uri>
&response_type=code
&scope=openid
&prompt=login
  • client_id:应用注册的客户端 ID
  • redirect_uri:登录成功后回调地址
  • response_type=code:使用授权码模式
  • scope=openid:必需的 OIDC scope
  • prompt=login:强制重新认证

3️⃣ 在你的场景中的作用

在你遇到的问题里:

  • 用户登出后仍然直接进入系统首页,原因是 浏览器或 SSO session 没有清理

  • 如果登录请求加 prompt=login

    • 即使浏览器中有旧的 session,也会弹出登录页面。
    • 避免了必须关闭浏览器才能重新登录的情况。

💡 核心总结

  • 默认行为:已有 session → 自动登录
  • prompt=login:忽略 session → 强制输入凭证
相关推荐
m0_5348750512 小时前
Ditto局域网同步功能实现宿主机和VMware虚拟机之间的复制粘贴共享
linux·运维·服务器
zbguolei12 小时前
Windows平台下SRS实时视频服务器的搭建
服务器·windows·音视频
爱笑的眼睛1112 小时前
深入 Django 表单 API:从数据流到高级定制
java·人工智能·python·ai
甲虫机12 小时前
超详细教程--电脑同时使用内网和外网上网
运维·服务器·网络
爬山算法12 小时前
Netty(22)如何实现基于Netty的HTTP客户端和服务器?
服务器·网络协议·http
RisunJan12 小时前
Linux命令-hdparm命令(获取和设置硬盘参数)
linux·运维·服务器
Qiuner12 小时前
Spring Boot AOP(三) 通知执行链源码解析
java·spring boot·后端
维度攻城狮12 小时前
宿主机休眠后再启动,vmware虚拟机中Ubuntu系统无法联网问题解决办法
运维·服务器·ubuntu·vmware
hashiqimiya12 小时前
通过前端修改后端,后端接收数组类型为string
java
BAOYUCompany12 小时前
数字心脏|暴雨服务器再次成功交付永州市脑科医院
运维·服务器