Keycloak登录使用JavaScript适配器返回404

时间:2018-01-24 08:40:59

标签: javascript html keycloak

我使用Keycloak的bower软件包创建了一个非常基本的演示HTML / JS应用程序。我有Keycloak在本地运行,keycloak.init()似乎工作(没有错误触发)。但是,当我致电keycloak.login()时,会返回404。可能是适配器错误地创建了登录URL吗?

keycloak.createLoginUrl()返回的网址是

https://<keycloak url>/realms/<realm>/protocol/openid-connect/auth?client_id=account&redirect_uri=file%3A%2F%2F%2FUsers%2Fjgallaso%2FProjects%2Fdemos%2Fkeycloak-simple-web-client%2Findex.html&state=b167dc0b-3e5b-4c67-87f7-fd5289fb7b8f&nonce=1e2cb386-51db-496a-8943-efcf4ef5d5e1&response_mode=fragment&response_type=code&scope=openid

这是我的全部代码:

<head>
  <script src="bower_components/keycloak/dist/keycloak.min.js"></script>
</head>

<body>
  <button id="login">Login</button>
</body>

<script>
  var keycloak = Keycloak({
    url: 'https://keycloak-keycloak.192.168.37.1.nip.io',
    realm: 'demo',
    clientId: 'account'
  });

  keycloak.init()
    .success(authenticated => {
      document.getElementById("login")
              .addEventListener("click", () => { keycloak.login(); });

    }).error(err => {
      console.log("init, error: " + err);
    });
</script>
</head>

回应很简单:

ERROR 404: Not Found

1 个答案:

答案 0 :(得分:0)

你有2个职位:

  1. 在init方法中自动登录invoque
  2. 在没有参数的情况下调用init后手动登录
  3. 1)

    <head>
      <script src="bower_components/keycloak/dist/keycloak.min.js"></script>
    </head>
    
    <body>
      <button id="login">Login</button>
    </body>
    
    <script>
      var keycloak = Keycloak({
        url: 'https://keycloak-keycloak.192.168.37.1.nip.io',
        realm: 'demo',
        clientId: 'account'
      });
    
      keycloak.init('login-required')
        .success(function(authenticated) => {
    
    
        }).error(err => {
          console.log("init, error: " + err);
        });
    </script>
    </head>
    

    2)

         keycloak.init().success(function(authenticated) {
    
             if(authenticated == true){
                alert('usuario logeado');    
             }else{
                alert('usuario no logeado');    
                keycloak.login();
    
             }
            }).error(function() {
             alert('failed to initialize');
    
        });
    

    我无法直接从管理层尝试。 文件:// C:/example.html 要进行更好的测试,您应该将index.html保留在本地测试服务器上。 我做的是安装chrome的web服务器插件,它对我有用。 我希望它能帮到你。

    问候

相关问题