Coder Social home page Coder Social logo

keycloadsetup's Introduction

keycloadsetup

yarn add   "keycloak-js": "^19.0.2",

import Keycloak from "keycloak-js";

const auth = new Keycloak({
    url: process.env.REACT_APP_KEYCLOAK_ISSUER_URL,
    realm: process.env.REACT_APP_KEYCLOAK_REALM_NAME,
    clientId: process.env.REACT_APP_KEYCLOAK_CLIENT_ID
});

const initKeycloak = (onAuthenticatedCallback) => {
    auth.init({
        onLoad: 'login-required',
        checkLoginIframe: false,
        silentCheckSsoRedirectUri: window.location.origin + '/silent-check-sso.html',
        pkceMethod: process.env.REACT_APP_KEYCLOAK_PKC_METHOD
    })
        .then((authenticated) => {
            if (!authenticated) {
                console.log("user is not authenticated..!");
            }
            onAuthenticatedCallback();
        })
        .catch(console.error);
};

const doLogin = auth.login;

const doLogout = auth.logout;

const getToken = () => auth.token;

const getIdToken = () => auth.idToken;

const getRefreshToken = () => auth.refreshToken;

const isLoggedIn = () => !!auth.token;

const updateToken = (successCallback) =>
    auth.updateToken(5)
        .then(successCallback)
        .catch(doLogin);

const getUsername = () => auth.tokenParsed?.preferred_username;

const hasRole = (roles) => roles.some((role) => auth.hasRealmRole(role));

const AuthService = {
    initKeycloak,
    doLogin,
    doLogout,
    isLoggedIn,
    getToken,
    getIdToken,
    getRefreshToken,
    updateToken,
    getUsername,
    hasRole
};

export default AuthService;

REACT_APP_KEYCLOAK_ISSUER_URL=http://192.168.1.224:8080
REACT_APP_KEYCLOAK_REALM_NAME=scms
REACT_APP_KEYCLOAK_CLIENT_ID=ffc_id
REACT_APP_KEYCLOAK_PKC_METHOD=S256

 const renderApp = () => root.render(<Provider store={store}><App /></Provider>);
 AuthService.initKeycloak(renderApp);

keycloadsetup's People

Contributors

tasmidur21 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.