angular - 无法使用 Keycloak OpenID 日志记录系统以隐身模式登录本地主机上的 Angular 10+ webapp
问题描述
在 http://localhost:4202 中尝试登录我的应用程序时,在隐身模式下使用 Chrome/Opera/Firefox 浏览器时,我的 Keycloak 服务器出现错误:
Request URL: https://auth-tst.somedomain.com/auth/realms/TEST/protocol/openid-connect/token
Request Method: POST
Status Code: 400 Bad Request
Remote Address: [SOME_IP]:443
Referrer Policy: strict-origin-when-cross-origin
回应是:
{
"error":"invalid_grant",
"error_description":"Invalid refresh token"
}
因为有效载荷是:
grant_type=refresh_token&refresh_token=undefined&client_id=TEST
注意refresh_token
参数 - 它是未定义的,因此在成功登录到 Keycloak 驱动的 OAuth 后,令牌可能在重定向回本地主机上的应用程序期间丢失。
重要的是要知道:日志记录在最新的 Edge 浏览器上以隐身模式工作。
我知道这是因为“在私有模式下阻止第三方 cookie”选项设置为 true。如果我更改为“允许所有 cookie”,则登录工作正常。
但事实是,这不是最佳解决方案,因为它需要用户操作浏览器设置。
问题是,是否可以通过 Angular 应用程序中的“阻止所有第三方 cookie”?
或者唯一的方法是checkLoginIframe
在 Keycloak 前端配置中使用标志?
解决方案
推荐阅读
- r - 将 hcharts( ) 条形从纯色更改为渐变
- python - 将用户输入的开始和结束日期值传递到生成数据框的 sql 查询中
- abap - 多变量声明和初始化
- python-3.x - python中的退出代码-1073740791(0xC0000409)出错
- reactjs - 对 Redux 中的操作感到困惑
- c# - 使用 AddIn Express 加载工作表以显示/隐藏功能区时如何捕获?
- r - 将 R Shiny 与 mysql 连接,mysql 在 rds (AWS) 中运行
- javascript - Jquery 工具提示使用敲除 observable 作为内容
- r - 在零/空值后按组重置行 id
- python - 如何将熊猫数据框绘制为散点图?我想我可能搞砸了索引并且无法添加新索引?