使用 jumbojett/OpenID-Connect-PHP 库的 KeyCloak 身份验证流程

Posted

技术标签:

【中文标题】使用 jumbojett/OpenID-Connect-PHP 库的 KeyCloak 身份验证流程【英文标题】:KeyCloak Authentication Flow with jumbojett/OpenID-Connect-PHP Library 【发布时间】:2020-05-28 03:06:48 【问题描述】:

我正在努力使用 OpenID 提供程序设置安全应用程序。

我做了什么:

设置 KeyCloak 服务器 创建简单的 php 应用程序 已加载jumbojett 库 已配置的客户端

我在做什么:

尝试访问我的应用程序 重定向到我的 KeyCloak 实例 登录成功 重定向到我的应用程序

问题是什么:

到我的应用程序的重定向 url 包含一些获取参数作为代码等。问题是,当我刷新页面时,我收到一条错误消息:代码只能使用一次。

我的问题是,我怎样才能提供一个合适的 url,用户可以刷新?

【问题讨论】:

那么在您处理完代码之后重定向到其他地方……到另一个 URL,那 not 是否不再包含该参数……? 感谢您的回复。但是如何保证不直接调用第二个url呢? 【参考方案1】:

我做了一些研究,发现我并不真正了解身份验证流程。

因此,在用户被重定向到我的应用程序后,我必须将刷新令牌存储在会话变量中。之后,我能够将用户重定向到新页面。

在新页面上,我必须检查是否已存储刷新令牌以及它是否有效。如果是这样,我可以向用户显示内容,否则,我必须将用户重定向到登录页面。

【讨论】:

以上是关于使用 jumbojett/OpenID-Connect-PHP 库的 KeyCloak 身份验证流程的主要内容,如果未能解决你的问题,请参考以下文章

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份

Kettle java脚本组件的使用说明(简单使用升级使用)