我一直在浏览Keycloak文档,但看不到该怎么做。使用Java,我想输入一个有效的用户名和密码,然后生成一个 token 。我怎样才能做到这一点?
最佳答案
-编辑2018-08-31--
您可以使用Authorization Client Java API。创建AuthzClient对象后,您可以将用户名和密码传递给AuthzClient#authorization(username, password)或AuthzClient#obtainAccessToken(username, password)方法,以验证用户身份并获取访问 token (和/或ID token ):
// create a new instance based on the configuration defined in keycloak-authz.json
AuthzClient authzClient = AuthzClient.create();
// send the authorization request to the server in order to
// obtain an access token granted to the user
AccessTokenResponse response = authzClient.obtainAccessToken("alice", "alice");
附带说明一下,如果可能的话,您宁愿重用Keycloak Java Adapters之一来涵盖更多功能,例如其他身份验证方法(通常将用户重定向到Keycloack WUI,您可以在其中执行非常灵活的身份验证和授权策略)。