このトピックでは、アクセストークンを取得または更新するために使用されるメソッドについて説明します。
アプリケーションの種類に基づいて、複数の方法でアクセストークンを取得できます。 詳細については、「アプリケーションの接続」をご参照ください。
このトピックで説明されているすべてのメソッドは、アクセストークンを取得するために使用されます。 アクセストークンを取得するには、コンストラクションメソッドを呼び出すときに api_endpoint パラメーターを指定します。
const client = new PDSClient({
api_endpoint: `https://${domain_id}.api.aliyunpds.com`
})IPDSRequestConfig タイプの options パラメーターは、axios のリクエスト構成オプションに基づいてカプセル化されています。 詳細については、「AxiosRequestConfig」をご参照ください。
getUserJwtToken
JSON Web トークン(JWT)アプリケーションからドライブおよびフォトサービスにアクセスするときに、アクセストークンを取得します。
最初に、ドライブおよびフォトサービスコンソールで JWT アプリケーションを作成し、アプリケーションの公開鍵を構成してから、秘密鍵を取得する必要があります。 次に、JWT アプリケーションの ID と秘密鍵を使用して、アクセストークンを取得します。
注:このメソッドは、Node.js 環境でのみサポートされています。
const result = await client.getUserJwtToken(params, options)サンプルコード
const domain_id = 'Your domain ID'
const client_id = 'Your JWT application ID'
const privary_key_pem = 'Your private key'
const user_id = 'The ID of the user for which you want to obtain an access token'
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, // 指定されたユーザーが存在しない場合にユーザーを自動的に作成するかどうかを指定します。
}
const jwtToken = await client.getUserJwtToken(params)リクエストパラメーター
パラメーター | タイプ | 必須 | 説明 |
params | IGetUserJwtTokenReq | はい | パラメーター。 |
options | IPDSRequestConfig | その他のオプション構成。 |
IGetUserJwtTokenReq
パラメーター | タイプ | 必須 | 説明 |
client_id | string | はい | JWT アプリケーション ID。 |
private_key_pem | string | はい | Privacy Enhanced Mail(PEM)形式の秘密鍵文字列。 |
domain_id | string | はい | ドメイン ID。 |
user_id | string | はい | ユーザーの一意の ID。 指定されたドメイン内でユーザー ID が一意であることを確認する必要があります。 |
auto_create | boolean | 指定されたユーザーが存在しない場合に、ユーザーを自動的に作成するかどうかを指定します。 ドメインに初期ドライブが構成されている場合、ユーザーが自動的に作成されるときに、ユーザーの初期ドライブが自動的に作成されます。 デフォルト値:false。 |
レスポンスパラメーター
パラメーター | タイプ | 必須 | 説明 |
result | ITokenInfo | はい | ユーザーの ID を表すアクセストークンに関する情報。 |
ITokenInfo
パラメーター | タイプ | 必須 | 説明 |
access_token | string | はい | ユーザーの ID を表す |
refresh_token | string | 期限切れになった | |
expire_time | string |
| |
expires_in | string |
| |
token_type | string |
| |
user_id | string | 現在のユーザーの一意の ID。 | |
role | string | 現在のユーザーが担っているロール。 | |
その他のパラメーター | 詳細については、「トークン」をご参照ください。 |
ITokenInfo のサンプルコード
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cC******AKBkbYjejHYX3d42VzSZ70",
"refresh_token": "a5a1ebadaba6*****27f4122",
"expires_in": 7200,
"token_type": "Bearer",
"user_id": "4b14efc*****6f63740",
"user_name": "User 1",
"avatar": "",
"nick_name": "User 1",
"default_drive_id": "1",
"role": "user",
"status": "enabled",
"expire_time": "2022-02-16T07:59:14Z",
"is_first_login": false,
"domain_id": "daily21453"
}getServiceJwtToken
ドメインのサービスアカウントのアクセストークンを取得します。 取得したアクセストークンはスーパー管理者権限を持ち、O&M 管理操作に使用されます。
注:このメソッドは、Node.js 環境でのみサポートされています。
const result = await client.getServiceJwtToken(params, options)サンプルコード
const domain_id = 'Your domain ID'
const client_id = 'Your JWT application ID'
const privary_key_pem = 'Your private key'
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)リクエストパラメーター
パラメーター | タイプ | 必須 | 説明 |
params | IGetServiceJwtTokenReq | はい | パラメーター。 |
options | IPDSRequestConfig | その他のオプション構成。 |
IGetServiceJwtTokenReq
パラメーター | タイプ | 必須 | 説明 |
client_id | string | はい | JWT アプリケーション ID。 |
private_key_pem | string | はい | PEM 形式の秘密鍵文字列。 |
domain_id | string | はい | ドメイン ID。 |
レスポンスパラメーター
パラメーター | タイプ | 必須 | 説明 |
result | ITokenInfo | はい | ドメインのサービスアカウントのスーパー管理者 ID を表すアクセストークンに関する情報。 |
refreshJwtToken
JWT アプリケーションからドライブおよびフォトサービスにアクセスするときに取得したアクセストークンを更新します。
access token は 2 時間有効で、refresh token は 7 日間有効です。
refresh token の有効期間中は、access token が期限切れになっているかどうかに関係なく、このメソッドを呼び出してアクセストークンを更新できます。
access token を更新すると、新しい access token が返され、古い access token は無効になります。
const result = await client.refreshJwtToken(params, options)サンプルコード
const client_id = 'Your JWT application ID'
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)リクエストパラメーター
パラメーター | タイプ | 必須 | 説明 |
params | IRefreshJwtTokenReq | はい | パラメーター。 |
options | IPDSRequestConfig | その他のオプション構成。 |
IRefreshJwtTokenReq
パラメーター | タイプ | 必須 | 説明 |
client_id | string | はい | JWT アプリケーション ID。 |
refresh_token | string | はい | 期限切れになったアクセストークンを更新するために使用される更新トークン。 |
レスポンスパラメーター
パラメーター | タイプ | 必須 | 説明 |
result | ITokenInfo | はい | 更新されたアクセストークンに関する情報。 |
getTokenByCode
OAuth アクセスプロセスで取得されたワンタイム認証コードを使用して、アクセストークンを取得します。
OAuth アクセスプロセスの詳細については、「OAuth 2.0 For Web Server Applications」トピックの OAuth 2.0 access for web server applications セクションをご参照ください。
const result = await client.getTokenByCode(params, options)サンプルコード
const client_id = 'Your OAuth application ID'
const client_secret = 'Your OAuth application secret'
const redirect_uri = 'The callback URL of your OAuth application'
const client = new PDSClient({
api_endpoint: `https://${domain_id}.api.aliyunpds.com`
});
const params = {
client_id,
client_secret,
redirect_uri,
code: 'xxxxxxx', // OAuth アクセスプロセスで取得されたワンタイム認証コード。
};
const token = await client.getTokenByCode(params)リクエストパラメーター
パラメーター | タイプ | 必須 | 説明 |
params | IGetTokenByCodeReq | はい | パラメーター。 |
options | IPDSRequestConfig | その他のオプション構成。 |
IGetTokenByCodeReq
パラメーター | タイプ | 必須 | 説明 |
client_id | string | はい | OAuth アプリケーション ID。 |
client_secret | string | OAuth アプリケーションシークレット。 アプリケーションタイプが Web サーバーの場合、このパラメーターを指定する必要があります。 | |
redirect_url | string | はい | OAuth アプリケーションのコールバック URL。 |
code | string | はい | OAuth アクセスプロセスで取得されたワンタイム認証コード。 |
レスポンスパラメーター
パラメーター | タイプ | 必須 | 説明 |
result | ITokenInfo | はい | ユーザーの ID を表すアクセストークンに関する情報。 |
refreshToken
OAuth アクセスプロセスで取得したアクセストークンを更新します。
access token は 2 時間有効で、refresh token は 7 日間有効です。
refresh token の有効期間中は、access token が期限切れになっているかどうかに関係なく、このメソッドを呼び出してアクセストークンを更新できます。
access token を更新すると、新しい access token が返され、古い access token は無効になります。
const result = await client.refreshToken(params, options)サンプルコード
const client_id = 'Your OAuth application ID'
const client_secret = 'Your OAuth application secret'
const redirect_uri = 'The callback URL of your OAuth application'
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)リクエストパラメーター
パラメーター | タイプ | 必須 | 説明 |
params | IRefreshTokenReq | はい | パラメーター。 |
options | IPDSRequestConfig | その他のオプション構成。 |
IRefreshTokenReq
パラメーター | タイプ | 必須 | 説明 |
client_id | string | はい | OAuth アプリケーション ID。 |
client_secret | string | OAuth アプリケーションシークレット。 アプリケーションタイプが Web サーバーの場合、このパラメーターを指定する必要があります。 | |
redirect_url | string | はい | OAuth アプリケーションのコールバック URL。 |
refresh_token | string | はい | 期限切れになったアクセストークンを更新するために使用される更新トークン。 |
レスポンスパラメーター
パラメーター | タイプ | 必須 | 説明 |
result | ITokenInfo | はい | 更新されたアクセストークンに関する情報。 |