如何获得密钥斗篷令牌?
How get keycloak token?
我正在制作一个机器人,我必须向 GraphQL API 发出请求并且它受到 Keycloak 的保护。我像在文档 of this site
中一样初始化了它
var Keycloak = require('keycloak-connect');
const session = require('express-session');
var memoryStore = new session.MemoryStore();
const keycloak = new Keycloak({
store: memoryStore
},
{
url: "https://host.com",
realm: "app-realm",
clientId: "app-clientId"
})
当我要进行查询时,我需要令牌在 header 中传递它,但不知道如何获取此令牌。
const fetch = require('node-fetch');
var token = ''; // this is what i dont know how to get
var bearer = 'Bearer ' + token;
fetch("https://api-host/graphql",{
method:'POST',
headers: {
'Authorization': bearer,
"Content-Type":"application/json"
},
body: JSON.stringify({
query: `
{
services{
name
}
}
`
}),
})
.then(res => res.json())
.then(data => {console.log(data)} )
如果您的 keycloak 客户端是机密的,那么您可以使用 client_id
和 client_secret
创建访问令牌,如果您的客户端是 public,那么您可以使用 OAuth 代码生成访问令牌授予流量
您可以使用令牌端点创建访问令牌。
卷曲示例:
curl --request POST --url https://authserver/auth/realms/yourrealm/protocol/openid-connect/token --header 'Content-Type: application/x-www-form-urlencoded' --data 'grant_type=client_credentials&client_id=client_id&client_secret=client_secret'
我正在制作一个机器人,我必须向 GraphQL API 发出请求并且它受到 Keycloak 的保护。我像在文档 of this site
中一样初始化了它var Keycloak = require('keycloak-connect');
const session = require('express-session');
var memoryStore = new session.MemoryStore();
const keycloak = new Keycloak({
store: memoryStore
},
{
url: "https://host.com",
realm: "app-realm",
clientId: "app-clientId"
})
当我要进行查询时,我需要令牌在 header 中传递它,但不知道如何获取此令牌。
const fetch = require('node-fetch');
var token = ''; // this is what i dont know how to get
var bearer = 'Bearer ' + token;
fetch("https://api-host/graphql",{
method:'POST',
headers: {
'Authorization': bearer,
"Content-Type":"application/json"
},
body: JSON.stringify({
query: `
{
services{
name
}
}
`
}),
})
.then(res => res.json())
.then(data => {console.log(data)} )
如果您的 keycloak 客户端是机密的,那么您可以使用 client_id
和 client_secret
创建访问令牌,如果您的客户端是 public,那么您可以使用 OAuth 代码生成访问令牌授予流量
您可以使用令牌端点创建访问令牌。
卷曲示例:
curl --request POST --url https://authserver/auth/realms/yourrealm/protocol/openid-connect/token --header 'Content-Type: application/x-www-form-urlencoded' --data 'grant_type=client_credentials&client_id=client_id&client_secret=client_secret'