首页 > 解决方案 > 从 Keycloak 登录:如何从 KEYCLOAK_IDENTITY/KC_RESTART cookie 获取承载令牌

问题描述

我有一个在 ReactJS 上运行的 UI 应用程序。对于登录,我们将其重定向到 keycloak 登录页面。

{“cid”:“abc-client”,“pty”:“openid-connect”,“ruri”:“https://10.10.10.10:3001/”,“act”:“AUTHENTICATE”,“notes”: { “范围”:“openid”,“iss”:“https://10.10.10.10:8445/auth/realms/abcrealm”,“response_type”:“代码”,“redirect_uri”:“https://10.10. 10.10:3001/”,“状态”:“879b6182-dca0-495c-8644-5b2ac032b5e4”,“nonce”:“1e263181-2313-45ea-962a-175fd58c6d75”,“response_mode”:“片段”} }

换句话说,我只想检查/验证提供的 KEYCLOAK_IDENTITY 令牌在配置文件中是否具有有效角色。

标签: keycloakkeycloak-serviceskeycloak-rest-api

解决方案


使用 keycloak-js 验证登录。使用 keycloak config json 初始化 keycloak。确保您提供公共客户端的配置(不需要秘密)。初始化后,keycloak 对象将同时具有 token 和 tokenParsed。它还具有许多其他有用的功能。检查他们的文档。

import Keycloak from 'keycloak-js';
const keycloak = Keycloak('/keycloak.json');
keycloak.init({
  onLoad: 'login-required',
}).then((authenticated) => {
  if (authenticated) {
    const token = keycloak.token;
    const tokenParsed = keycloak.tokenParsed;
  
  }
}

推荐阅读