我正在尝试开发一个微服务来处理与Auth0的身份验证。
我在其上一个版本中添加了auth0-java依赖项:
<dependency>
<groupId>com.auth0</groupId>
<artifactId>auth0</artifactId>
<version>1.0.0</version>
</dependency>
该服务应该使用user / pwd并在Auth0上验证它并发送回AccessToken。
这是失败的代码:
AuthAPI auth = new AuthAPI("my-domain.auth0.com", "xxx", "yyy");
AuthRequest request = auth.login(username, password, "Username-Password-Authentication")
.setAudience("https://my-domain.auth0.com/api/v2/")
.setScope("openid name email app_metadata");
try {
TokenHolder holder = request.execute();
return holder;
} catch (Auth0Exception e) {
throw new AuthentException("Error authenticating " + username, e);
}
此代码失败:
请求失败,状态代码为400:用户未获得这些范围的受众授权
我尝试使用“读取:客户端读取:用户”等范围......但同样的问题。
然后我尝试使用旧版本0.4.0,它可以工作。
以下是工作代码:
Auth0 auth = new Auth0("xxx", "my-domain.auth0.com");
AuthenticationAPIClient client = auth.newAuthenticationAPIClient();
try {
Authentication execute = client.getProfileAfter(client.login(username, password)
.setConnection("Username-Password-Authentication")).setScope("openid name email app_metadata").execute();
return execute.getCredentials();
} catch (APIException e) {
throw new AuthentException("Error authenticating " + username, e);
}
那么为什么0.4.0有效,而不是1.0.0?
答案 0 :(得分:1)