Node.js中的Keycloak总是返回403访问被拒绝错误

问题描述 投票:2回答:1

Keycloak从我的响应前端发送令牌时返回403错误。

我已经在React中实现了keycloak服务器和身份验证。成功登录后,我可以获取keycloak.token并在react中重定向。

我遵循了发现的教程,并且我的设置与此答案几乎相同:Keycloak nodeJS always get 403

[不幸的是,我仍然收到403-访问被拒绝-错误。我已经设置了一个领域,下面是我的keycloak.json文件和代码。

{
  "realm": "Weal V3",
  "bearer-only": true,
  "auth-server-url": "http://localhost:8080/auth",
  "ssl-required": "external",
  "resource": "node",
  "verify-token-audience": true,
  "use-resource-role-mappings": true,
  "confidential-port": 0
}

我的代码

const express = require('express');
const session = require('express-session');
const Keycloak = require('keycloak-connect');
const cors = require('cors');
const morgan = require('morgan');


const app = express();
app.use(cors())
app.use(morgan('combined'))

const memoryStore = new session.MemoryStore();

app.use(session({
    secret: 'some secret',
    resave: false,
    saveUninitialized: true,
    store: memoryStore
}));

const keycloak = new Keycloak({
    store: memoryStore
});


app.use(keycloak.middleware());


app.get('/public', (req, res) => {
    res.json({ message: 'public' })
})

app.get('/secure', keycloak.protect(), (req, res) => {
    console.log(req)
    res.json({ message: 'secured' })
})


app.get('/admin', keycloak.protect(), (req, res) => {
    res.json({ message: 'secret' })
})


app.listen(5500, () => console.log('Server started on port 5500'))

[我希望当我使用React应用程序中的Authorization:Bearer + keycloak.token导航到http://localhost:5500/secure时,我应该得到{ message: 'secured' },但得到的却是403 Access Denied

node.js keycloak bearer-token
1个回答
0
投票

到目前为止是否对此主题有任何更新?

我在同一问题上受阻

© www.soinside.com 2019 - 2024. All rights reserved.