我为我的应用设置了此设置
前端可以选择受登录保护。对于某些用户,将需要登录,这会将用户重定向到Keycloak服务器。用户登录后,前端将具有一个承载令牌,以对受密钥库保护的后端进行api调用。
我的问题是如何为不需要登录的用户(匿名用户)获取承载令牌。
我尝试过这种方法:
我被困在这里。我进行了研究,阅读了很多文档,但没有找到实现该目标的方法。
另一个让我着迷的想法是使载体access_token长寿(例如1个小时)。但是,某些用户可能会使用该应用程序一个多小时。
目前,我不确定是否可以从JavaScript网络应用程序匿名调用受keycloak保护的后端。
具有很长寿命(例如6个小时)的access_tokens是错误的吗?我还有什么其他选择?
答案 0 :(得分:1)
在不增加太多复杂性的情况下,当访问令牌过期(用户未授权的请求)时,重定向用户以重新登录。这要容易得多,因为在许多情况下,流程都是相同的。
另一种选择是使用类似会话的方法来处理此问题,这确实增加了复杂性。 https://openid.net/specs/openid-connect-session-1_0.html
答案 1 :(得分:1)
我也遇到过类似的情况。您可以使用以下方法。
通过这种方式,您无需对访问UI代码的令牌值进行硬编码。另外,后端调用受会话保护。
另外,
只有负担是后端的会话维护。但是,围绕此构建了许多最佳实践。