[AGC] Cómo obtener clientToken en modo de autenticación AGC

 Recientemente, algunos desarrolladores han planteado preguntas al usar API para acceder al servicio de indexación, cómo obtener clientToken. De hecho, el modo de autenticación AGC es un conjunto de sistema de autenticación estándar OAuth2 implementado por la puerta de enlace del lado de la nube y los microservicios AGC basados ​​en el método de autenticación clientToken. El servicio de back-end de la puerta de enlace de acceso debe tener un ID de cliente y un secreto de cliente válidos para pasar la verificación de autenticación de la puerta de enlace del lado de la nube e iniciar una llamada efectiva a la interfaz comercial. A continuación se describen dos métodos para obtener clientToken.

Obtener ID de cliente y secreto de cliente

La premisa de ambos métodos es que primero se debe obtener el ID de cliente y el secreto de cliente.

Inicie sesión en la consola de AGC y seleccione "Usuarios y acceso". Elija Clave de API > Conectar API y haga clic en Crear para crear un nuevo cliente de API.

cke_293.png

dirección api y parámetros de solicitud

Dirección API: https://connect-api.cloud.huawei.com/api/oauth2/v1/token

cke_872.png

Método 1: el cartero obtiene clientToken

El primer método es muy simple. Use cartero directamente, ingrese el par clave-valor de grant_type, client_id y client_secret en el Cuerpo, sin agregar encabezados, y use el método de publicación para iniciar directamente una solicitud para obtener clientToken.

cke_1696.png

 

Método 2: use el código en el proyecto para llamar a la API para obtener el token de cliente

Ejemplo de llamada:

public static String getToken(String domain, String clientId, String clientSecret) {
    String token = null;
    try {
        HttpPost post = new HttpPost(domain + "/oauth2/v1/token");

        JSONObject keyString = new JSONObject();
        keyString.put("client_id", "18893***83957248");
        keyString.put("client_secret", "B15B497B44E080EBE2C4DE4E74930***52409516B2A1A5C8F0FCD2C579A8EB14");
        keyString.put("grant_type", "client_credentials");

        StringEntity entity = new StringEntity(keyString.toString(), Charset.forName("UTF-8"));
        entity.setContentEncoding("UTF-8");
        entity.setContentType("application/json");
        post.setEntity(entity);

        CloseableHttpClient httpClient = HttpClients.createDefault();
        HttpResponse response = httpClient.execute(post);
        int statusCode = response.getStatusLine().getStatusCode();
        if (statusCode == HttpStatus.SC_OK) {

            BufferedReader br =
                new BufferedReader(new InputStreamReader(response.getEntity().getContent(), Consts.UTF_8));
            String result = br.readLine();
            JSONObject object = JSON.parseObject(result);
            token = object.getString("access_token");
        }

        post.releaseConnection();
        httpClient.close();
    } catch (Exception e) {

    }
    return token;
}

Después de que la llamada sea exitosa, se devuelve la respuesta correcta y se obtienen el token de cliente y el período de validez:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
    "access_token": "eyJhbGciOiJIUzU****************",    
    "expires_in": 172800
}

 

 Para obtener más artículos técnicos, visite https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/4478396/blog/5570400
Recomendado
Clasificación