Retrieve Custom Attribute from JavaScript (using Javascript Adapter) Keycloak









up vote
1
down vote

favorite












I have a keycloak user with custom attributes like below.
keycloak custom attribute



I use Reactjs for front-end. I want to retrieve the custom attribute from the javascript side. Like this answer states.



https://stackoverflow.com/a/32890003/2940265



But I can't find how to do it on the javascript side.



I debugged in Chrome but I can't find a suitable result for custom attributes.



Please help










share|improve this question

























    up vote
    1
    down vote

    favorite












    I have a keycloak user with custom attributes like below.
    keycloak custom attribute



    I use Reactjs for front-end. I want to retrieve the custom attribute from the javascript side. Like this answer states.



    https://stackoverflow.com/a/32890003/2940265



    But I can't find how to do it on the javascript side.



    I debugged in Chrome but I can't find a suitable result for custom attributes.



    Please help










    share|improve this question























      up vote
      1
      down vote

      favorite









      up vote
      1
      down vote

      favorite











      I have a keycloak user with custom attributes like below.
      keycloak custom attribute



      I use Reactjs for front-end. I want to retrieve the custom attribute from the javascript side. Like this answer states.



      https://stackoverflow.com/a/32890003/2940265



      But I can't find how to do it on the javascript side.



      I debugged in Chrome but I can't find a suitable result for custom attributes.



      Please help










      share|improve this question













      I have a keycloak user with custom attributes like below.
      keycloak custom attribute



      I use Reactjs for front-end. I want to retrieve the custom attribute from the javascript side. Like this answer states.



      https://stackoverflow.com/a/32890003/2940265



      But I can't find how to do it on the javascript side.



      I debugged in Chrome but I can't find a suitable result for custom attributes.



      Please help







      javascript reactjs keycloak






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 9 at 11:15









      Menuka Ishan

      1,1442135




      1,1442135






















          1 Answer
          1






          active

          oldest

          votes

















          up vote
          0
          down vote



          accepted










          I found the answer.



          I will post here, because someone may find it useful.



          Well, You can add custom attributes to the user but you need extra configurations to retrieve it from the javascript side. For Beginner ease, I will write the answer from Adding customer to retrieving the attribute from javascript (in my case react js).



          Let's add custom attributes to a user.



          login into keycloak and choose your realm (if you have multiple realms unless you will automatically login to realm)



          After that select Users -> View all users
          Select your user in my case it's Alice
          Select Attributes and add custom attributes (in my case I added custom attribute call companyId like below)



          enter image description here



          Now click Save



          Now we have to Map Custom attribute with our keycloak client.
          To front end to use keycloak you must have client in Clients (left side bar)
          If you haven't you have to configure a client for that. In my case my client is test-app



          Therefor select Clients -> test-app -> Mappers
          Now we have to create Mapper. Click Create



          For Token Claim Name you should give your custom attributes key (in my case it is companyId) for my ease, I use companyId for Name, Realm Role prefix, Token Claim Name. You should choose User Attribute in Mapper Type and String for Claim JSON Type



          After that click Save. Now you can get your custom attribute from javascript.



          let say your keycloak JavaScript object is keycloak, you can get companyId using keycloak.



          let companyId = keyCloak.idTokenParsed.companyId;


          sample code would be like below (my code in react.js)



          keyCloak.init(
          onLoad: 'login-required'
          ).success(authenticated =>
          if (authenticated)
          if (hasIn(keyCloak.tokenParsed, 'realm_access'))
          if (keyCloak.tokenParsed.realm_access.roles === )
          console.log("Error: No roles found in token")
          else
          let companyId = keyCloak.idTokenParsed.companyId;

          else
          console.log("Error: Cannot parse token");

          else
          console.log("Error: Authentication failed");

          ).error(e =>
          console.log("Error: " + e);
          console.log(keyCloak);
          );


          Hope somebody find this answer useful, because I could find an answer for JavaScript. Happy coding :)






          share|improve this answer




















            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53224680%2fretrieve-custom-attribute-from-javascript-using-javascript-adapter-keycloak%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            0
            down vote



            accepted










            I found the answer.



            I will post here, because someone may find it useful.



            Well, You can add custom attributes to the user but you need extra configurations to retrieve it from the javascript side. For Beginner ease, I will write the answer from Adding customer to retrieving the attribute from javascript (in my case react js).



            Let's add custom attributes to a user.



            login into keycloak and choose your realm (if you have multiple realms unless you will automatically login to realm)



            After that select Users -> View all users
            Select your user in my case it's Alice
            Select Attributes and add custom attributes (in my case I added custom attribute call companyId like below)



            enter image description here



            Now click Save



            Now we have to Map Custom attribute with our keycloak client.
            To front end to use keycloak you must have client in Clients (left side bar)
            If you haven't you have to configure a client for that. In my case my client is test-app



            Therefor select Clients -> test-app -> Mappers
            Now we have to create Mapper. Click Create



            For Token Claim Name you should give your custom attributes key (in my case it is companyId) for my ease, I use companyId for Name, Realm Role prefix, Token Claim Name. You should choose User Attribute in Mapper Type and String for Claim JSON Type



            After that click Save. Now you can get your custom attribute from javascript.



            let say your keycloak JavaScript object is keycloak, you can get companyId using keycloak.



            let companyId = keyCloak.idTokenParsed.companyId;


            sample code would be like below (my code in react.js)



            keyCloak.init(
            onLoad: 'login-required'
            ).success(authenticated =>
            if (authenticated)
            if (hasIn(keyCloak.tokenParsed, 'realm_access'))
            if (keyCloak.tokenParsed.realm_access.roles === )
            console.log("Error: No roles found in token")
            else
            let companyId = keyCloak.idTokenParsed.companyId;

            else
            console.log("Error: Cannot parse token");

            else
            console.log("Error: Authentication failed");

            ).error(e =>
            console.log("Error: " + e);
            console.log(keyCloak);
            );


            Hope somebody find this answer useful, because I could find an answer for JavaScript. Happy coding :)






            share|improve this answer
























              up vote
              0
              down vote



              accepted










              I found the answer.



              I will post here, because someone may find it useful.



              Well, You can add custom attributes to the user but you need extra configurations to retrieve it from the javascript side. For Beginner ease, I will write the answer from Adding customer to retrieving the attribute from javascript (in my case react js).



              Let's add custom attributes to a user.



              login into keycloak and choose your realm (if you have multiple realms unless you will automatically login to realm)



              After that select Users -> View all users
              Select your user in my case it's Alice
              Select Attributes and add custom attributes (in my case I added custom attribute call companyId like below)



              enter image description here



              Now click Save



              Now we have to Map Custom attribute with our keycloak client.
              To front end to use keycloak you must have client in Clients (left side bar)
              If you haven't you have to configure a client for that. In my case my client is test-app



              Therefor select Clients -> test-app -> Mappers
              Now we have to create Mapper. Click Create



              For Token Claim Name you should give your custom attributes key (in my case it is companyId) for my ease, I use companyId for Name, Realm Role prefix, Token Claim Name. You should choose User Attribute in Mapper Type and String for Claim JSON Type



              After that click Save. Now you can get your custom attribute from javascript.



              let say your keycloak JavaScript object is keycloak, you can get companyId using keycloak.



              let companyId = keyCloak.idTokenParsed.companyId;


              sample code would be like below (my code in react.js)



              keyCloak.init(
              onLoad: 'login-required'
              ).success(authenticated =>
              if (authenticated)
              if (hasIn(keyCloak.tokenParsed, 'realm_access'))
              if (keyCloak.tokenParsed.realm_access.roles === )
              console.log("Error: No roles found in token")
              else
              let companyId = keyCloak.idTokenParsed.companyId;

              else
              console.log("Error: Cannot parse token");

              else
              console.log("Error: Authentication failed");

              ).error(e =>
              console.log("Error: " + e);
              console.log(keyCloak);
              );


              Hope somebody find this answer useful, because I could find an answer for JavaScript. Happy coding :)






              share|improve this answer






















                up vote
                0
                down vote



                accepted







                up vote
                0
                down vote



                accepted






                I found the answer.



                I will post here, because someone may find it useful.



                Well, You can add custom attributes to the user but you need extra configurations to retrieve it from the javascript side. For Beginner ease, I will write the answer from Adding customer to retrieving the attribute from javascript (in my case react js).



                Let's add custom attributes to a user.



                login into keycloak and choose your realm (if you have multiple realms unless you will automatically login to realm)



                After that select Users -> View all users
                Select your user in my case it's Alice
                Select Attributes and add custom attributes (in my case I added custom attribute call companyId like below)



                enter image description here



                Now click Save



                Now we have to Map Custom attribute with our keycloak client.
                To front end to use keycloak you must have client in Clients (left side bar)
                If you haven't you have to configure a client for that. In my case my client is test-app



                Therefor select Clients -> test-app -> Mappers
                Now we have to create Mapper. Click Create



                For Token Claim Name you should give your custom attributes key (in my case it is companyId) for my ease, I use companyId for Name, Realm Role prefix, Token Claim Name. You should choose User Attribute in Mapper Type and String for Claim JSON Type



                After that click Save. Now you can get your custom attribute from javascript.



                let say your keycloak JavaScript object is keycloak, you can get companyId using keycloak.



                let companyId = keyCloak.idTokenParsed.companyId;


                sample code would be like below (my code in react.js)



                keyCloak.init(
                onLoad: 'login-required'
                ).success(authenticated =>
                if (authenticated)
                if (hasIn(keyCloak.tokenParsed, 'realm_access'))
                if (keyCloak.tokenParsed.realm_access.roles === )
                console.log("Error: No roles found in token")
                else
                let companyId = keyCloak.idTokenParsed.companyId;

                else
                console.log("Error: Cannot parse token");

                else
                console.log("Error: Authentication failed");

                ).error(e =>
                console.log("Error: " + e);
                console.log(keyCloak);
                );


                Hope somebody find this answer useful, because I could find an answer for JavaScript. Happy coding :)






                share|improve this answer












                I found the answer.



                I will post here, because someone may find it useful.



                Well, You can add custom attributes to the user but you need extra configurations to retrieve it from the javascript side. For Beginner ease, I will write the answer from Adding customer to retrieving the attribute from javascript (in my case react js).



                Let's add custom attributes to a user.



                login into keycloak and choose your realm (if you have multiple realms unless you will automatically login to realm)



                After that select Users -> View all users
                Select your user in my case it's Alice
                Select Attributes and add custom attributes (in my case I added custom attribute call companyId like below)



                enter image description here



                Now click Save



                Now we have to Map Custom attribute with our keycloak client.
                To front end to use keycloak you must have client in Clients (left side bar)
                If you haven't you have to configure a client for that. In my case my client is test-app



                Therefor select Clients -> test-app -> Mappers
                Now we have to create Mapper. Click Create



                For Token Claim Name you should give your custom attributes key (in my case it is companyId) for my ease, I use companyId for Name, Realm Role prefix, Token Claim Name. You should choose User Attribute in Mapper Type and String for Claim JSON Type



                After that click Save. Now you can get your custom attribute from javascript.



                let say your keycloak JavaScript object is keycloak, you can get companyId using keycloak.



                let companyId = keyCloak.idTokenParsed.companyId;


                sample code would be like below (my code in react.js)



                keyCloak.init(
                onLoad: 'login-required'
                ).success(authenticated =>
                if (authenticated)
                if (hasIn(keyCloak.tokenParsed, 'realm_access'))
                if (keyCloak.tokenParsed.realm_access.roles === )
                console.log("Error: No roles found in token")
                else
                let companyId = keyCloak.idTokenParsed.companyId;

                else
                console.log("Error: Cannot parse token");

                else
                console.log("Error: Authentication failed");

                ).error(e =>
                console.log("Error: " + e);
                console.log(keyCloak);
                );


                Hope somebody find this answer useful, because I could find an answer for JavaScript. Happy coding :)







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 12 at 12:34









                Menuka Ishan

                1,1442135




                1,1442135



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53224680%2fretrieve-custom-attribute-from-javascript-using-javascript-adapter-keycloak%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

                    Edmonton

                    Crossroads (UK TV series)