Updated on 2024-12-02 GMT+08:00

Reset a Device Secret

Function

This API is used by an application to reset a device secret. If the request contains a secret, the platform resets the device secret to the specified secret. If the request does not contain a secret, the platform automatically generates a new random secret and returns it.

Debugging

You can debug this API through automatic authentication in API Explorer or use the SDK sample code generated by API Explorer.

URI

POST /v5/iot/{project_id}/devices/{device_id}/action

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Parameter description: project ID. For details about how to obtain the project ID, see Obtaining a Project ID.

device_id

Yes

String

Parameter description: device ID, which uniquely identifies a device. The value of this parameter is specified during device registration or allocated by the platform.

Value: The value can contain a maximum of 128 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed.

Table 2 Query Parameters

Parameter

Mandatory

Type

Description

action_id

Yes

String

Parameter description: operation performed on a device.

Options:

  • resetSecret: resetting the secret. Note: Due to protocol restrictions, NB-IoT device secrets must be hexadecimal values.

Request Parameters

Table 3 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

No

String

Parameter description: user token. You can obtain the token by calling the IAM API Obtaining a User Token Through Password Authentication. X-Subject-Token in the response header returned by the API is the desired user token. For details about how to obtain the token, see Token Authentication.

Instance-Id

No

String

Parameter description: instance ID. Unique identifier of each instance in the physical multi-tenant scenario. Mandatory for professional editions and recommended in other cases. Log in to the IoTDA console and choose Overview in the navigation pane to view the instance ID. For details, see Viewing Instance Details.

Table 4 Request body parameters

Parameter

Mandatory

Type

Description

secret

No

String

Parameter description: device secret. When this parameter is specified, the platform resets the device secret to the specified value. If this parameter is not specified, the platform automatically generates a device secret.

Value: The value can contain 8 to 32 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed.

force_disconnect

No

Boolean

Parameter description: whether to forcibly disconnect a device. Only long-connection devices are supported. The default value is false.

secret_type

No

String

Parameter description: type of the device secret to reset.

Options:

  • PRIMARY: Resets the master secret. Primary secret used for secret-based device access authentication.

  • SECONDARY: Resets the sub secret. Secondary secret used when the master secret fails to pass the authentication. Unavailable for devices accessed using CoAP.

Response Parameters

Status code: 200

Table 5 Response body parameters

Parameter

Type

Description

device_id

String

Device ID, used to uniquely identify a device. The value of this parameter is specified during device registration or allocated by the platform. If the value is allocated by the platform, the value is in the format of [product_id]_[node_id].

secret

String

Device secret.

secret_type

String

Parameter description: type of the device secret to reset.

Options:

  • PRIMARY: Resets the master secret. Primary secret used for secret-based device access authentication.

  • SECONDARY: Resets the sub secret. Secondary secret used when the master secret fails to pass the authentication. Unavailable for devices accessed using CoAP.

Example Requests

Resets the secret of a specified device. The new secret is 3b93****dc3c. Re-establishing the connection from the device is not mandatory.

POST https://{endpoint}/v5/iot/{project_id}/devices/{device_id}/action?action_id=resetSecret

{
  "secret" : "3b93****dc3c",
  "force_disconnect" : false
}

Example Responses

Status code: 200

OK

{
  "device_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f",
  "secret" : "3b93****dc3c",
  "secret_type" : "PRIMARY"
}

Status Codes

Status Code

Description

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

Error Codes

See Error Codes.