Keycloak-如何检查用户名和电子邮件是否存在

时间:2018-10-09 17:04:58

标签: java keycloak

我们要以编程方式创建Keycloak用户,然后检查Keycloak中是否已经存在用户名和/或电子邮件地址。我们正在使用4.4.0.FINAL版。

当我们使用Keycloak管理员客户端以编程方式创建用户时,如果用户名或电子邮件地址已在使用中,则会收到错误代码409(冲突)。但是,我们在响应(readEntity中仅收到一条错误消息,即用户名已经存在。该错误消息并未说明该电子邮件地址也已被使用。

检查Keycloak中用户名和/或电子邮件地址是否已存在的最佳方法是什么?

目标是确切知道用​​户名或电子邮件地址是否已经存在。而且,这不仅可以结合使用,而且还可以结合到用户A已经使用了请求的用户名,而用户B已经使用了请求的邮件地址。

2 个答案:

答案 0 :(得分:0)

检查Admin API是否存在用户名和/或电子邮件:

GET /{realm}/users?username=toto&email=blabla@example.com 

然后检查结果是否为空。 usernameemail查询参数都是可选的。

更多信息: https://www.keycloak.org/docs-api/4.4/rest-api/index.html#_users_resource (请查找获取用户部分。)

管理CLI kcadm.sh中应该有一个相应的命令。

答案 1 :(得分:0)

2020年,将有一个新的API(至少有一个新的PR于2020年6月合并):https://github.com/keycloak/keycloak/pull/6926

现在我们可以使用以下API:

List<UserRepresentation> search(@QueryParam("username") String username, @QueryParam("exact") Boolean exact);