避免使用keycloak默认登录页面并使用项目登录页面

时间:2016-09-06 19:16:06

标签: java angularjs keycloak keycloak-services

我正在创建一个angular.js Web应用程序,并在寻找如何将keycloak集成到项目中。我已阅读并观看了许多教程,我发现其中大多数都有用户通过keycloak的默认登录页面登录/注册,然后重定向到应用程序。

我设计了自己的登录和注册页面,我想使用它。我如何使用它们而不是keycloak默认值。有没有我可以调用的API,或者我的后端可能会这样做?我还看到有可用于keycloak的弹簧适配器,我可以使用它们吗?任何示例的任何链接都会很好。

我的第二个问题是在注册时我可以在keycloak中添加更多用户详细信息,例如地址,dob,性别吗?因为我的注册页面需要这些信息。

6 个答案:

答案 0 :(得分:33)

扩展API角色

POST to your/keycloak/url/auth/realms/master/protocol/openid-connect/token

有数据:

{

    client_id : 'Id_of_your_client',

    username : 'your_username',
    password : '@#$%^&',
    grant_type : "password"

}

将为您提供初始访问令牌和刷新令牌

使用

POST到相同的网址

数据:

{

    client_id : 'Id_of_your_client',

   // client_secret : 'optional depending on the type of client',

    grant_type : "refresh_token" ,

    refresh_token : refresh_token_you_got_earlier 

}

将提供新的刷新和访问令牌。这些令牌是keycloak检查授权/身份验证的内容。

您可以自行登录并通过REST API将凭据发送到keycloak,一旦您拥有访问令牌,只需将其放入任何正在进行的关键隐藏保护资源请求的标头中

headers :{

  Authorization : 'Bearer ' +  access_token_you_got

}

答案 1 :(得分:26)

3个步骤:

  1. keycloak / themes / 目录中创建名称为eg的文件夹。的 MyTheme的 即可。
  2.  directory structure

    1. myTheme 文件夹中放置自定义登录页

      (结构必须与base或keycloak主题相同,我的建议是复制基本主题,重命名并自定义它。)

    2. 转到keycloak的管理控制台,进入领域设置>主题>登录主题并选择 myTheme

    3. enter image description here

答案 2 :(得分:1)

  • 您可能应该坚持使用Keycloack的表格。它们带来了不错的功能(SSO,pw重置等),并且可以完全自定义(通过主题)。但是,可以通过所谓的 Direct Access Grant 获取访问令牌。可以通过Keycloak REST API
  • 完成
  • 存储自定义用户信息(性别,工作等)由用户属性
  • 完成

官方Keycloak Docs或多或少都涵盖了这两个主题。

答案 3 :(得分:1)

将您的登录主题放在keycloak主题目录中,然后通过admin登录更改登录主题设置并从下拉列表中选择您的主题。 你的登录主题必须在keycloak默认主题格式中,所以要创建你的,请参考keycloak默认主题并根据它设计你的。

您可以参考以下内容 Keycloak theme configuration

答案 4 :(得分:1)

如果您想通过java点击keycloak登录页面并获得响应,请使用以下代码:

db.Exec(sql)

如果您的用户名和密码有效,则response.getStatusLine()。getStatusCode()将使用accessToken和RefreshToken给出值200。否则,response.getStatusLine()。getStatusCode()将值为403,数据为:{“error”:“invalid_grant”,“error_description”:“无效的用户凭据”}

答案 5 :(得分:0)

在文档中,似乎您扩展了主题或覆盖了各个资源(模板,样式表等): https://www.keycloak.org/docs/latest/server_development/#creating-a-theme

关于其他用户详细信息,同样来自docs: https://www.keycloak.org/docs/latest/server_development/#_custom_user_attributes