java – 如何获取所有Auth0用户的列表
作者:互联网
我想从Java API(auth0客户端)获取Auth0用户列表.我可以做吗?基于Java Spring Security的API.
我试过用RestTemplate做到这一点:
List findAllUsers(){
String idToken = RestService.getIdToken()
HttpHeaders headers = new HttpHeaders()
headers.set("Authorization", "Bearer $idToken");
List users = []
try{
ResponseEntity entity = restTemplate.exchange(issuer+"api/v2/users", HttpMethod.GET, new HttpEntity<Object>(headers), List)
users = entity.getBody()
} catch (HttpClientErrorException e){
e.printStackTrace()
}
return users
}
但是我获得了403 Forbidden状态.
解决方法:
是的,这是可能的.但是,您需要使用Auth0管理令牌.
请参阅我写的this sample,我在那里进行搜索(在这种情况下,过滤以获取特定的用户帐户而不是所有用户).
您可以获取管理令牌并查看搜索选项here.您需要将管理令牌读取:用户和读取:user_idp_tokens范围根据文档.
建议您首先使用像Postman这样的工具来获得正确的搜索,然后转换为Java.您可以使用OkHttpClient上方示例链接中列出的代码段和相关依赖项
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.2.0</version>
</dependency>
此外,Postman还可用于根据您定义的请求生成代码. Auth0目前不提供Java库的管理API,但很快就会这样做.
更新:
这是一些工作代码,只需替换您的管理令牌和租户(用于URL).
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.Response;
import java.io.IOException;
/**
* Created by arcseldon on 07/09/2016.
*/
public class GetUsers {
public static void main(String[] args) throws IOException {
final String MANAGEMENT_TOKEN = "YOUR_MANAGEMENT_TOKEN";
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://<YOUR_TENANT>.auth0.com/api/v2/users")
.get()
.addHeader("authorization", "Bearer " + MANAGEMENT_TOKEN)
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
System.out.println("All done: " + response.body().string());
}
}
标签:java,spring-security,auth0 来源: https://codeday.me/bug/20190611/1218976.html