0

我成功地使用 mod_auth_openidc 来验证我的网站并获得 access_token。我可以使用 access_token 以登录用户身份向托管在其他地方的第三方资源验证我的服务器端代码。

如果访问令牌过期,我需要刷新它,而 mod_auth_openidc 似乎需要我对特定 url 进行重定向调用才能这样做。如果我所在的页面是 GET 请求,那很好。该页面注意到令牌已过期,并且重定向返回到同一页面。但如果是 POST、PUT 或 DELETE 请求,最终的刷新仍然是 GET。

因此,除非我编写一些非常脏的代码来隐藏原始页面及其全部细节,否则我似乎被卡住了。

相比之下,我可以轻松地进行服务器端调用来刷新令牌,而不涉及模块,但是模块不知道令牌已更新,更新后的令牌将丢失。

特定的用例是我向用户展示一个表格,要求他们填写,然后发送出去。生成的帖子数据用于调用第三方 API。但如果用户填写表单的时间过长,POST 调用的访问令牌已过期,无法刷新。

有没有办法解决这个问题,还是我需要恢复使用特定于语言的库来完成我所有的 openid 和 oauth 工作?

4

1 回答 1

0

您应该能够让您的服务器端代码不将用户的浏览器重定向到模块的处理程序 URL,但实际上对其执行直接反向通道调用以刷新访问令牌。不过,您必须提取并出示会话 cookie 才能进行该呼叫。

于 2019-06-21T18:49:33.380 回答