Topik ini menjelaskan metode yang digunakan untuk mendapatkan atau memperbarui token akses.
Anda dapat memperoleh token akses melalui berbagai cara, tergantung pada jenis aplikasi. Untuk informasi lebih lanjut, lihat Ikhtisar Aplikasi.
Semua metode yang dijelaskan dalam topik ini digunakan untuk mendapatkan token akses. Untuk mendapatkan token akses, tentukan parameter api_endpoint saat memanggil metode konstruksi.
const client = new PDSClient({
api_endpoint: `https://${domain_id}.api.aliyunpds.com`
})Parameter options dari tipe IPDSRequestConfig dienkapsulasi berdasarkan opsi konfigurasi permintaan axios. Untuk informasi lebih lanjut, lihat AxiosRequestConfig.
getUserJwtToken
Mendapatkan token akses saat mengakses Drive and Photo Service dari aplikasi JSON Web Token (JWT).
Pertama, buat aplikasi JWT di konsol Drive and Photo Service, konfigurasikan kunci publik untuk aplikasi tersebut, dan peroleh kunci privat. Kemudian, gunakan ID aplikasi JWT dan kunci privat untuk mendapatkan token akses.
Catatan: Metode ini hanya didukung di lingkungan Node.js.
const result = await client.getUserJwtToken(params, options)Kode contoh
const domain_id = 'ID domain Anda'
const client_id = 'ID aplikasi JWT Anda'
const privary_key_pem = 'Kunci privat Anda'
const user_id = 'ID pengguna yang ingin Anda dapatkan token aksesnya'
const client = new PDSClient({
api_endpoint: `https://${domain_id}.api.aliyunpds.com`
})
const params = {
domain_id,
client_id,
private_Key_pem,
user_id,
auto_create: false, // Menentukan apakah akan secara otomatis membuat pengguna jika pengguna yang ditentukan tidak ada.
}
const jwtToken = await client.getUserJwtToken(params)Parameter permintaan
Parameter | Tipe | Diperlukan | Deskripsi |
params | IGetUserJwtTokenReq | Ya | Parameter-parameter. |
options | IPDSRequestConfig | Konfigurasi opsional lainnya. |
IGetUserJwtTokenReq
Parameter | Tipe | Diperlukan | Deskripsi |
client_id | string | Ya | ID aplikasi JWT. |
private_key_pem | string | Ya | String kunci privat dalam format Privacy Enhanced Mail (PEM). |
domain_id | string | Ya | ID domain. |
user_id | string | Ya | ID unik pengguna. Anda harus memastikan bahwa ID pengguna unik di domain yang ditentukan. |
auto_create | boolean | Menentukan apakah akan secara otomatis membuat pengguna jika pengguna yang ditentukan tidak ada. Jika drive awal dikonfigurasikan di domain, drive awal secara otomatis dibuat untuk pengguna ketika pengguna dibuat secara otomatis. Nilai default: false. |
Parameter respons
Parameter | Tipe | Diperlukan | Deskripsi |
result | ITokenInfo | Ya | Informasi tentang token akses yang mewakili identitas pengguna. |
ITokenInfo
Parameter | Tipe | Diperlukan | Deskripsi |
access_token | string | Ya |
|
refresh_token | string |
| |
expire_time | string | Waktu kedaluwarsa dari | |
expires_in | string | Periode validitas dari | |
token_type | string | Tipe dari | |
user_id | string | ID unik pengguna saat ini. | |
role | string | Peran yang diasumsikan oleh pengguna saat ini. | |
Parameter lainnya | Untuk informasi lebih lanjut, lihat Token. |
Kode Contoh ITokenInfo
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cC******AKBkbYjejHYX3d42VzSZ70",
"refresh_token": "a5a1ebadaba6*****27f4122",
"expires_in": 7200,
"token_type": "Bearer",
"user_id": "4b14efc*****6f63740",
"user_name": "Pengguna 1",
"avatar": "",
"nick_name": "Pengguna 1",
"default_drive_id": "1",
"role": "user",
"status": "enabled",
"expire_time": "2022-02-16T07:59:14Z",
"is_first_login": false,
"domain_id": "daily21453"
}getServiceJwtToken
Mendapatkan token akses untuk akun layanan domain. Token akses yang diperoleh memiliki izin super administrator dan digunakan untuk operasi manajemen O&M.
Catatan: Metode ini hanya didukung di lingkungan Node.js.
const result = await client.getServiceJwtToken(params, options)Kode contoh
const domain_id = 'ID domain Anda'
const client_id = 'ID aplikasi JWT Anda'
const privary_key_pem = 'Kunci privat Anda'
const client = new PDSClient({
api_endpoint: `https://${domain_id}.api.aliyunpds.com`
})
const params = {
domain_id,
client_id,
private_Key_pem,
}
const jwtToken = await client.getServiceJwtToken(params)Parameter permintaan
Parameter | Tipe | Diperlukan | Deskripsi |
params | IGetServiceJwtTokenReq | Ya | Parameter-parameter. |
options | IPDSRequestConfig | Konfigurasi opsional lainnya. |
IGetServiceJwtTokenReq
Parameter | Tipe | Diperlukan | Deskripsi |
client_id | string | Ya | ID aplikasi JWT. |
private_key_pem | string | Ya | String kunci privat dalam format PEM. |
domain_id | string | Ya | ID domain. |
Parameter respons
Parameter | Tipe | Diperlukan | Deskripsi |
result | ITokenInfo | Ya | Informasi tentang token akses yang mewakili identitas super administrator akun layanan domain. |
refreshJwtToken
Memperbarui token akses yang diperoleh saat mengakses Drive and Photo Service dari aplikasi JWT.
access token valid selama 2 jam, dan refresh token valid selama tujuh hari.
Selama periode validitas refresh token, Anda dapat memanggil metode ini untuk memperbarui token akses, terlepas dari apakah access token telah kedaluwarsa.
Setelah memperbarui access token, access token baru dikembalikan dan access token lama menjadi tidak valid.
const result = await client.refreshJwtToken(params, options)Kode contoh
const client_id = 'ID aplikasi JWT Anda'
const client = new PDSClient({
api_endpoint: `https://${domain_id}.api.aliyunpds.com`
})
const params = {
client_id,
refresh_token: 'xxxxxxx',
}
const jwtToken = await client.refreshJwtToken(params)Parameter permintaan
Parameter | Tipe | Diperlukan | Deskripsi |
params | IRefreshJwtTokenReq | Ya | Parameter-parameter. |
options | IPDSRequestConfig | Konfigurasi opsional lainnya. |
IRefreshJwtTokenReq
Parameter | Tipe | Diperlukan | Deskripsi |
client_id | string | Ya | ID aplikasi JWT. |
refresh_token | string | Ya | Refresh token yang digunakan untuk memperbarui token akses yang telah kedaluwarsa. |
Parameter respons
Parameter | Tipe | Diperlukan | Deskripsi |
result | ITokenInfo | Ya | Informasi tentang token akses yang diperbarui. |
getTokenByCode
Mendapatkan token akses menggunakan kode otorisasi satu kali yang diperoleh dalam proses akses OAuth.
Untuk informasi lebih lanjut tentang proses akses OAuth, lihat bagian Akses OAuth 2.0 untuk aplikasi server web dari topik "OAuth 2.0 For Web Server Applications".
const result = await client.getTokenByCode(params, options)Kode contoh
const client_id = 'ID aplikasi OAuth Anda'
const client_secret = 'Rahasia aplikasi OAuth Anda'
const redirect_uri = 'URL callback aplikasi OAuth Anda'
const client = new PDSClient({
api_endpoint: `https://${domain_id}.api.aliyunpds.com`
});
const params = {
client_id,
client_secret,
redirect_uri,
code: 'xxxxxxx', // Kode otorisasi satu kali yang diperoleh dalam proses akses OAuth.
};
const token = await client.getTokenByCode(params)Parameter permintaan
Parameter | Tipe | Diperlukan | Deskripsi |
params | IGetTokenByCodeReq | Ya | Parameter-parameter. |
options | IPDSRequestConfig | Konfigurasi opsional lainnya. |
IGetTokenByCodeReq
Parameter | Tipe | Diperlukan | Deskripsi |
client_id | string | Ya | ID aplikasi OAuth. |
client_secret | string | Rahasia aplikasi OAuth. Parameter ini harus ditentukan jika jenis aplikasi adalah webserver. | |
redirect_url | string | Ya | URL callback aplikasi OAuth. |
code | string | Ya | Kode otorisasi satu kali yang diperoleh dalam proses akses OAuth. |
Parameter respons
Parameter | Tipe | Diperlukan | Deskripsi |
result | ITokenInfo | Ya | Informasi tentang token akses yang mewakili identitas pengguna. |
refreshToken
Memperbarui token akses yang diperoleh dalam proses akses OAuth.
access token valid selama 2 jam, dan refresh token valid selama tujuh hari.
Selama periode validitas refresh token, Anda dapat memanggil metode ini untuk memperbarui token akses, terlepas dari apakah access token telah kedaluwarsa.
Setelah memperbarui access token, access token baru dikembalikan dan access token lama menjadi tidak valid.
const result = await client.refreshToken(params, options)Kode contoh
const client_id = 'ID aplikasi OAuth Anda'
const client_secret = 'Rahasia aplikasi OAuth Anda'
const redirect_uri = 'URL callback aplikasi OAuth Anda'
const client = new PDSClient({
api_endpoint: `https://${domain_id}.api.aliyunpds.com`
})
const params = {
client_id,
client_secret,
redirect_uri,
refresh_token: 'xxxxxxx'
}
const token = await client.refreshToken(params)Parameter permintaan
Parameter | Tipe | Diperlukan | Deskripsi |
params | IRefreshTokenReq | Ya | Parameter-parameter. |
options | IPDSRequestConfig | Konfigurasi opsional lainnya. |
IRefreshTokenReq
Parameter | Tipe | Diperlukan | Deskripsi |
client_id | string | Ya | ID aplikasi OAuth. |
client_secret | string | Rahasia aplikasi OAuth. Parameter ini harus ditentukan jika jenis aplikasi adalah webserver. | |
redirect_url | string | Ya | URL callback aplikasi OAuth. |
refresh_token | string | Ya | Refresh token yang digunakan untuk memperbarui token akses yang telah kedaluwarsa. |
Parameter respons
Parameter | Tipe | Diperlukan | Deskripsi |
result | ITokenInfo | Ya | Informasi tentang token akses yang diperbarui. |