如果 keycloak 会话过期,如何重定向到登录页面?

if the keycloak session expired, How do I redirect to login page?

我正在尝试在我的 node.js 应用程序上实施 keycloak。

我在我的 node.js 应用程序上使用 keycloak-nodejs-connect。

如果网站没有操作的时间超过 session空闲时间,我想自动进入登录页面或通知用户注销(当session过期时,按F5会自动调出登录页面)。

密钥斗篷版本:12.0.0 keycloak-nodejs-connect 版本:12.0.4

我只是用我参考下面源码写的代码

https://github.com/keycloak/keycloak-nodejs-connect/blob/master/example/index.js

如何将客户端页面重定向到登录页面或注销页面?

感谢评论。

这是代码。

app.js var memoryStore = new session.MemoryStore();

app.use(会话({ 秘密:'mySecret', 重新保存:假, 保存未初始化:真, 存储:内存存储 }));

var keycloak = new Keycloak({ 存储:内存存储 });

app.use(keycloak.middleware({ 注销:'/注销', 行政:'/' }));

index.js(路由器) var Keycloak = require('keycloak-connect');

var memoryStore = new session.MemoryStore(); var keycloak = new Keycloak({ 存储:内存存储 });

如果您正在使用 keycloak-connect,您不必担心用户重定向,因为这就是您使用该库的原因,它会为您完成。

关于 links:如果您是 运行 示例,url http://localhost:3000/logout 将重定向到 keycloak 服务器并删除那里的会话.之后,它将重定向回您的应用程序,在本例中为 http://localhost:3000

快捷应用的任意资源,需要认证and/or授权,如

app.get('/hello', keycloak.protect(), function (req, res) {
  res.json({message: `Hello ${req.kauth.grant.id_token.content.preferred_username}`});
});

将自动重定向到 keycloak 服务器并显示登录表单或处理单点登录,无论为领域配置什么。 所以没有 link 到登录页面,但是如果在 http://localhost:3000/hello 没有有效的用户会话,它会重定向到它,否则它已经知道你是谁并且会打印你的名字。