我正在创建一个angular.js Web应用程序,并在寻找如何将keycloak
集成到项目中。我已阅读并观看了许多教程,我发现其中大多数都有用户通过keycloak
的默认登录页面登录/注册,然后重定向到应用程序。
我设计了自己的登录和注册页面,我想使用它。我如何使用它们而不是keycloak
默认值。有没有我可以调用的API,或者我的后端可能会这样做?我还看到有可用于keycloak的弹簧适配器,我可以使用它们吗?任何示例的任何链接都会很好。
我的第二个问题是在注册时我可以在keycloak
中添加更多用户详细信息,例如地址,dob,性别吗?因为我的注册页面需要这些信息。
答案 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个步骤:
答案 2 :(得分:1)
官方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