Redux Saga Keycloak Adapter - PullRequest
       84

Redux Saga Keycloak Adapter

0 голосов
/ 22 февраля 2020

Wierd Saga поведение при попытке Keycloak Javascript Adapter Silent SSO ... Я отправляю из компонента App, поэтому App: true Журнал из приложения ... silent-check-sso . html это iframe

import { takeLatest, put, call } from 'redux-saga/effects';
import { START_KEYCLOAK } from './constants';
import {
  setKeycloak,
  setIsLogged,
  setUserInfo,
  keycloakComplete,
} from './actions';
import Keycloak from 'keycloak-js';
import KeycloakJSON from '../../utils/keycloak.json';

function* fetchKeycloak() {
  console.log('Keycloak Saga: ', Date.now());

  let keycloak; // keycloak instance for Login and Logout
  let isLogged; // is User logged
  let userInfo; // if User logged, get userInfo
  keycloak = Keycloak(KeycloakJSON);

  isLogged = yield keycloak.init({
    onLoad: 'check-sso',
    silentCheckSsoRedirectUri:
      window.location.origin + '/silent-check-sso.html',
    promiseType: 'native',
  });

  if (isLogged) {
    console.log('isLogin Saga: ', isLogged);
    userInfo = yield keycloak.loadUserInfo();
  }

  try {
    console.log('Keycloak instance: ', keycloak);
    yield put(setKeycloak(keycloak));
    if (isLogged) {
      console.log('Keycloak isLogged: ', isLogged);
      yield put(setIsLogged(isLogged));
      console.log('Keycloak UserInfo: ', userInfo);
      yield put(setUserInfo(userInfo));
    }
    yield put(keycloakComplete());
  } catch (err) {
    console.log('Keycloak Err: ', err);
  }
}

export default function* startKeycloak() {
  yield takeLatest(START_KEYCLOAK, fetchKeycloak);
}

Консоль дает мне вроде все нормально, но это не так ...

debug image

Магазин не обновляется ...

store bad

Когда я удаляю Silent SSO, все работает нормально, и консоль выдает мне тот же результат, что и раньше .. .

silentCheckSsoRedirectUri: window.location.origin + '/silent-check-sso.html'

store correct

...