我正在制作一个应用程序的机器人,该应用程序是用GraphQL API制作的,但需要进行密钥披风认证。API的创建者给我发送了这些环境变量。
NEXT_PUBLIC_KEYCLOAK_CLIENT_ID="something-else“
NEXT_PUBLIC_KEYCLOAK_REALM=”#en0#“NEXT_PUBLIC_KEYCLOAK_HOST="http://url”
已经与API建立了连接,但请告诉我错误:
“您的令牌密钥过期或无效。
这是连接到API的代码:
fetch("https://url/graphql",{
method:'POST',
headers: {"Content-Type":"application/json"},
body: JSON.stringify({
query: `
{
services{
name
}
}
`
}),
})
.then(res => res.json())
.then(data => {console.log(data)} )我应该把钥匙斗篷的认证信息放在哪里,或者我做错了什么?提前感谢!
发布于 2020-12-08 20:39:15
API受到keycloak的保护,因此您需要在请求中传递一些身份验证信息。
通常,这是通过传递Authorization令牌的Bearer头来完成的。这个标头需要添加到每个API请求中。
Authorization: Bearer eyJhd....fdfd但是,首先,您需要对keycloak进行身份验证,以便为您的客户端发出更多的令牌。
看看keycloak提供的客户端适配器。此客户端适配器处理应用程序的身份验证工作流。也许JavaScript或Node.js适配器对您来说是正确的https://www.keycloak.org/docs/latest/securing_apps/#_javascript_adapter
适配器可以使用api创建者提供的领域信息(url、王国、client_id)进行初始化。
https://stackoverflow.com/questions/65205189
复制相似问题