0

我正在尝试使用 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)});

谢谢 !

4

0 回答 0