编程语言
首页 > 编程语言> > java – 如何获取所有Auth0用户的列表

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