我正在尝试使用 Keycloak 在 NodeJS 上实现 keycloak 身份验证。我想在授权请求标头或请求 cookie 中使用 JWT。
我关注了文档,但它使用了快速会话。因此请求中不包含 JWT,而是包含与 JWT 匹配的服务器上的会话 ID。我不想使用会话,而只想使用附加到客户端请求的 JWT。
这是我完成的代码:
const express = require("express");
const expressSession = require("express-session");
const keycloak = require("keycloak-connect");
const cors = require("cors");
const server = express();
const port = "80";
server.set("port",port);
server.use(express.json());
server.use(express.urlencoded());
server.use(cors());
const memoryStore = new expressSession.MemoryStore();
server.use(expressSession({
secret: "keySecret",
resave: false,
saveUninitialized: true,
store: memoryStore
}));
const KK = new keycloak({store: memoryStore});
server.use(KK.middleware({
admin: "/admin",
logout: "/"
}));
server.get("/private",KK.protect(),async (req,res,next)=> {
res.json({message: "Hey! You're connected !"});
});
server.get("/public",(req,res,netx)=>{
res.json({message: "This is the public page of the testing web app"});
});
server.listen(port,()=> {console.log("Server running on port "+port)});
谢谢 !