Я реализую API серверной части Nodejs. Некоторые из них требуют аутентификации перед доступом. для этого я выбираю сервер keycloak в качестве сервера идентификации. Я использовал библиотеку npm keycloak-connect для интеграции сервера узлов и сервера keycloak. Теперь аутентификация работает нормально.
проблема в том, что когда я выхожу из сервера keycloak, используя 'http://localhost:8080/auth/realms/test-realm/protocol/openid-connect/logout 'этот API. сервер keycloak сообщает, что токен больше не действителен. Но когда я использовал то же самое, что и для доступа к серверу Node, он принимает этот токен как действительный токен.
'use strict';
const Keycloak = require('keycloak-connect');
const express = require('express');
var cors = require('cors')
const app = express();
app.use(cors())
var keycloakConfig ={
"realm": "test-realm",
"auth-server-url": "http://localhost:8080/auth",
"ssl-required": "external",
"resource": "test-dev-api",
"public-client": true,
"confidential-port": 0
}
var keycloak = new Keycloak({},keycloakConfig);
app.use( keycloak.middleware( { logout: '/logout'} ));
app.get('/secured-echo', keycloak.protect(), function(req,resp) {
resp.send("Secured Hello");
});
//unprotected route
app.get('/echo', function(req,resp) {
console.log(keycloakConfig)
console.log(keycloak)
resp.json({"say": "hello"});
});
app.listen(4000, function () {
console.log('Listening at port:4000');
});