我正在尝试在我的node.js应用程序上实现keycloak。
我在我的node.js应用上使用keycloak-nodejs-connect。
如果网站上没有任何操作超过会话空闲时间,我想自动转到登录页面或通知已注销的用户(当会话到期时,按F5将自动调出登录页面)。
Keycloak版本: 12.0.0 keycloak-nodejs-connect版本: 12.0.4
我只是参考下面的源代码写的代码。
https://github.com/keycloak/keycloak-nodejs-connect/blob/master/example/index.js
如何将客户端页面重定向到登录页面或注销页面?
感谢您的评论。
下面是代码。
新变量memoryStore = app.js session.MemoryStore();
app.use(session({ secret:'mySecret',resave: false,saveUninitialized: true,store: memoryStore }));
var keycloak =新的密钥罩({ store: memoryStore });
注销(app.use({keycloak.middleware:'/logout',admin:'/‘}));
Index.js(路由器) var密钥罩=需要(‘密钥罩-连接’);
var memoryStore =新存储();var session.MemoryStore=新密钥罩({ store: memoryStore });
发布于 2021-03-11 00:01:12
如果你使用的是keycloak-connect,你不必担心用户的重定向,因为这就是你使用库的原因,它会帮你做到这一点。
关于链接:如果您正在运行示例,url http://localhost:3000/logout将重定向到keycloak服务器并删除那里的会话。在此之后,它将重定向回您的应用程序,在本例中为http://localhost:3000
express应用程序的任何需要认证和/或授权的资源,如
app.get('/hello', keycloak.protect(), function (req, res) {
res.json({message: `Hello ${req.kauth.grant.id_token.content.preferred_username}`});
});将自动重定向到keycloak服务器,并显示登录表单或处理单点登录,无论为域配置了什么。因此没有到登录页面的链接,但是如果http://localhost:3000/hello上没有有效的用户会话,它将重定向到登录页面,否则它将已经知道您是谁并打印您的名字。
https://stackoverflow.com/questions/66542654
复制相似问题