reactjs - 为什么 keycloak 在页面刷新时未经授权?

标签 reactjs keycloak keycloak-services keycloak-rest-api

当我刷新页面 keycloak.authenticate get false 并再次询问凭据时,我现在已经成功地将 keycloak 与 reactJS 集成。 我也在互联网上搜索过,他们建议在 initOptions Prop 中传递 token 和刷新 token ,我已经这样做了,但仍然面临同样的问题。

我正在使用“@react-keycloak/web”:“^2.1.1”和“keycloak-js”:“^10.0.1”

那是我的 Keycloak.js 代码


import * as Keycloak from 'keycloak-js';

const keycloakConfig = {
   url: 'https://smartgrid.doersops.com/auth/',
   realm: 'OneSmartgrid',
   clientId: 'smartgrid-react-web-admin',
}

const keycloak = new Keycloak(keycloakConfig);

export default keycloak

那是我的 App.js 代码

import React from 'react';
import { KeycloakProvider } from '@react-keycloak/web'
import keycloak from './keycloak';
import { AppRouter }  from './routes';
function App() {
  const token = localStorage.getItem('token');
  const refreshToken = localStorage.getItem('refreshToken');

  const setTokens = (token, idToken, refreshToken) => {
    localStorage.setItem('token', token);
    localStorage.setItem('refreshToken', refreshToken);
    localStorage.setItem('idToken', idToken);
  }
  return (
    <KeycloakProvider 
      keycloak={keycloak}
      onTokens={
          (tokens:  keycloakTokens) => 
          setTokens(tokens.token ?? '', tokens.idToken ?? '', tokens.refreshToken ?? '')
        }
      initOptions={{ onLoad: 'login-required', token, refreshToken }}
      >
      <AppRouter />
    </KeycloakProvider>
  )
}

export default App;

最佳答案

我正在回答我自己的问题,实际上我必须从 keycloak 管理面板更改设置。从侧面菜单中单击身份验证,然后从下拉列表中选择浏览器。

enter image description here

关于reactjs - 为什么 keycloak 在页面刷新时未经授权?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66795515/

相关文章:

java - 无需重新编译整个项目即可修改 Keycloak 源代码

http-post - 如何使用httppost/rest-api从keycloak获取用户列表

java - keycloak 中的领域创建

node.js - 快速服务器重定向问题

javascript - 在一个事件中 react 触发多个功能

javascript - 有没有办法在没有 setState 的情况下重新渲染功能性 React.js 组件?

keycloak - 如何配置 Keycloak 以与 Guacamole 的 OpenID 插件一起使用?

json - Keycloak记录到JSON格式消息字段

java - Keycloak - 自定义表单操作在流程中不可见

javascript - 注销后 React Router 4 管理路由