Keycloak - 通过api请求用户验证电子邮件地址

zoo*_*eex 5 keycloak keycloak-nodejs-connect keycloak-rest-api

期望的结果

用户应该能够注册,然后他应该能够通过移动应用程序登录(如果电子邮件地址未验证则发生),该应用程序会显示一条警告,表明电子邮件未验证并且某些应用程序功能被禁用

我拥有的

  1. 具有用户注册和登录功能的本机移动应用程序
  2. 应用程序使用的 api 服务器
  3. 钥匙钟实例

注册功能由api 服务器完成,它是一个 keycloak 机密客户端,可以创建用户 登录移动应用程序直接通过对 keycloak 的后调用来完成/token返回访问令牌来完成的

一切都好,现在我有一个可以由我的 api 服务器使用的令牌,并且我知道它是一个具有未经确认的电子邮件地址的注册用户

问题是用户没有收到任何欢迎/确认电子邮件,但是:如果用户转到 keycloak LogIn 网页并尝试使用新创建的用户登录,那么他会收到来自 Keycloak 的电子邮件,但对于通过 api 登录,则没有电子邮件。那么有什么办法解决这个问题吗?难道我做错了什么?

请求用户验证电子邮件的唯一方法是请求“验证电子邮件”操作,但如果我这样做,那么用户将无法再使用未经验证的电子邮件登录

登录通过POSTto/auth/realms/realm/protocol/openid-connect/token和 with完成{grant_type: 'password', password: 'string', username: 'string'}body完成的

呼叫的行为似乎与PUT /{realm}/users/{id}/send-verify-email请求相同Verify Email/execute-actions-email

小智 0

我知道这个答案迟到了几年,但对于将来来到这里的任何人来说,开发人员在此线程中回答

这是执行操作端点的限制,它使用通用电子邮件。这不是一个错误,而是一个限制

就是这样。他们有一个特定的端点只是为了发送验证电子邮件,但它只是端点的包装器execute-actions-email