如何解决如果 keycloak 会话过期,如何重定向到登录页面?
我正在尝试在我的 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(会话({ 秘密:'我的秘密', 重新保存:假, 保存未初始化:真, 存储:内存存储 }));
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
,您不必担心用户重定向,因为这就是您使用库的原因,它会为您完成。
关于链接:如果您正在运行示例,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 没有有效的用户会话,它会重定向到它,否则它已经知道你是谁,并会打印你的名字。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。