node.js - 在 node js 中使用 keycloak 访问 token (从前端的 HTTP GET 请求中的 Authorization header 中接收)对 rest api 进行身份验证

标签 node.js keycloak

var loadData = function () {

var url = 'http://localhost:3000/users';

var req = new XMLHttpRequest();
req.open('GET', url, true);
req.setRequestHeader('Accept', 'application/json');
req.setRequestHeader('Authorization', 'Bearer ' + keycloak.token);

req.onreadystatechange = function () {
    if (req.readyState == 4) {
        if (req.status == 200) {
            console.log('Success');
        } else if (req.status == 403) {
            console.log('Forbidden');
        }
    }
}

req.send();  
};

以上是我的前端代码,请求 REST API 并在授权 header 中传递 keycloak token ,这将需要在 Node js 服务器端进行身份验证。

现在我想知道如何使用 Keycloak 保护我的 Rest Api 并根据从前端收到的 token 对其进行身份验证,并判断真实用户是否正在请求 rest api 资源。

我在 node js 中创建了一个 rest api 并使用了 keycloak-connect npm packge。我已经用 keycloak 中间件映射了 nodejs 中间件。
var express = require('express');
var router = express.Router();
var app = express();
var Keycloak = require('keycloak-connect');
var keycloak =new Keycloak();

app.use( keycloak.middleware( {
logout: '/logout',
admin: '/',
} ));

router.get('/users',function(req, res, next) {
var token=req.headers['authorization']; //Access token received from front end

//Now how to authenticate this token with keycloak???

});

我还在项目的根文件夹中包含了 keycloak.json 文件。

最佳答案

keycloak.protect()功能。使用它来验证您的路线。

router.get('/users',keycloak.protect(),function(req, res, next) {

});

关于node.js - 在 node js 中使用 keycloak 访问 token (从前端的 HTTP GET 请求中的 Authorization header 中接收)对 rest api 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42394475/

相关文章:

keycloak - 注册后如何在keycloak用户模型中存储外部数据

node.js - 从 Electron App 隐藏其他窗口/程序

node.js - 使用 Firebase、Material Design Components (MDC) 和 Node.js

node.js - Mongo 连接流在 NodeJS 应用程序中意外关闭

postgresql - 需要使用 azure postgresql 运行 Keycloak Docker Image

spring - 将 Spring Security 全局方法安全性与 Keycloak 集成

node.js - 获取连接 ECONNREFUSED 127.0.0.1 :80 when attempting HTTP request

node.js - 亚马逊 s3 和 Node js 视频流和缩略图?

configuration - LDAP 联合用户 - 自动将电子邮件验证设置为 true

java - Spring key 斗篷 : Get User ID