Todos os produtos
Search
Central de documentação

Drive and Photo Service:Processo de acesso OAuth 2.0 para aplicativos móveis e desktop

Última atualização: Jun 28, 2026

Nota

Este tópico descreve como aplicativos móveis e desktop acessam o Drive and Photo Service usando OAuth 2.0.

1. Visão geral

Aplicativos móveis e desktop são aplicações nativas. Não é seguro armazenar informações confidenciais, como AppSecrets, nesses aplicativos.

Um aplicativo móvel para Android ou iOS pode iniciar um aplicativo de autorização por meio de um URL scheme.

Um aplicativo desktop para macOS, Linux ou Windows pode iniciar um aplicativo de autorização usando um endereço IP de loopback ou um URL scheme.

Como alternativa, use WebView no seu aplicativo para enviar uma solicitação de autorização a um aplicativo web.

(1) Como funciona

Modo de código de autorização: o processo de acesso com código de autorização para aplicativos móveis ou desktop assemelha-se ao de aplicativos web. A única diferença é que não é necessário fornecer um AppSecret para obter um token de acesso, pois não há servidor web envolvido e o armazenamento de AppSecret em aplicativos móveis ou desktop é inseguro.

(2) Fluxograma

image

2. Preparações

(1) Crie um domínio

Crie um domínio no console do Drive and Photo Service. Após criar o domínio, você receberá um nome de domínio de API de quarto nível no formato https://{domainId}.api.aliyunpds.com.

(2) Ative o recurso de logon do sistema de usuários

O Drive and Photo Service oferece vários sistemas de usuários comuns para autenticação de logon. Ative esse recurso no console do Drive and Photo Service. Para mais informações, consulte Sistemas de usuários do PDS.

(3) Crie um aplicativo para usar como cliente OAuth no console do Drive and Photo Service

Crie um aplicativo nativo e especifique seus escopos, que aparecerão na página de consentimento. Após a criação, obtenha o AppId e o AppSecret correspondentes. O AppId e o AppSecret funcionam como ClientId e ClientSecret para a autorização OAuth. Essas credenciais servem para autorização e autenticação. Mantenha o AppSecret em sigilo.

(4) Planeje um URI de redirecionamento

Use um URL scheme personalizado aplicável a aplicativos Android ou iOS

Registre um URL scheme para identificar exclusivamente o aplicativo. O esquema segue este formato: <scheme domain name>://<path>?<params>=<value>.

Use um endereço IP de loopback personalizado aplicável a aplicativos desktop

Inicie um serviço web local para escutar em uma porta. Exemplo: http://127.0.0.1:3000/callback ou http://[::1]:3000.

3. Obtenha um token de acesso OAuth 2.0

(1) Chame a operação Authorize

Sintaxe da solicitação de API:

GET /v2/oauth/authorize?client_id=<appId>&redirect_uri=<redirect_uri>&scope=<scope>&login_type=<login_type>&state=[state]&prompt=[prompt] HTTP/1.1
Host: {domainId}.api.aliyunpds.com

Parâmetro

Obrigatório

Descrição

client_id

Sim

O AppId do seu aplicativo. Caso não possua um AppId, crie um aplicativo no console do Drive and Photo Service para obtê-lo.

redirect_uri

Sim

O URI para o qual o servidor de autorização do Drive and Photo Service redireciona os usuários após concluir o processo de autorização. Defina este parâmetro como o URL scheme ou endereço IP de loopback fornecido pelo aplicativo. Exemplo: pdshz001://callback/. Após a autorização, o servidor redireciona o usuário para o URI de redirecionamento com um sufixo contendo um código de autorização único no formato pdshz001://callback/?code=xxxx. Use esse código para trocar por um token de acesso. Nota: O URI de redirecionamento especificado deve ser idêntico ao configurado no seu aplicativo.

scope

Sim

Os escopos que definem as permissões necessárias para o seu aplicativo. Eles aparecem na página de consentimento. Para mais detalhes, consulte Authorize.

response_type

Sim

O tipo de resposta. Defina o valor como code.

state

Não, mas recomendado

Se especificado, o servidor de autorização do Drive and Photo Service retorna esse valor intacto no URI de redirecionamento para evitar ataques de replay. Exemplo: pdshz001://callback/?code=xxxx&state=abc.

login_type

Sim

O método de logon. Valores válidos: default, phone, ding, ldap, wx, and ram. default: faz logon na página padrão, que também fornece links para outros métodos, como verificação por SMS. phone: faz logon via código de verificação por SMS. ding: faz logon usando o aplicativo DingTalk para escanear um QR code. ldap: faz logon via domínio Active Directory (AD) ou Lightweight Directory Access Protocol (LDAP). wx: faz logon pelo WeChat. ram: faz logon como usuário RAM.

hide_consent

Não

Define se a página de consentimento será exibida no primeiro logon do usuário. Valores válidos: true and false. Se definido como true, a página não aparece.

lang

Não

O idioma de exibição da página. Valores válidos: zh_CN e en_US. Valor padrão: zh_CN.

Quando um usuário envia essa solicitação, o servidor de autorização do Drive and Photo Service solicita que ele faça logon. Se for o primeiro acesso e o parâmetro hide_consent não estiver definido como true, o servidor redireciona o usuário para a página de consentimento. Caso contrário, o redirecionamento ocorre diretamente para o URI definido no parâmetro redirect_uri. Exemplo: pdshz001://callback/?code=xxxx&state=abc.

(2) Conceda permissões ao aplicativo na página de consentimento

Na página de consentimento, o usuário decide se concede as permissões solicitadas ao aplicativo. Se recusar, o processo termina. Ao concordar, o servidor de autorização do Drive and Photo Service redireciona o usuário para o URI especificado no parâmetro redirect_uri. Exemplo: pdshz001://callback/?code=xxxx&state=abc.

(3) Troque o código de autorização por um token de acesso

Após obter o código de autorização, chame a operação Token para trocá-lo por um token de acesso.

Sintaxe da solicitação de API:

POST /v2/oauth/token HTTP/1.1
Host: {domainId}.api.aliyunpds.com
Content-Type: application/x-www-form-urlencoded

code=xxx\
&client_id=your_app_id\
&redirect_uri=pdshz001://callback\
&grant_type=authorization_code

Parâmetro

Obrigatório

Descrição

code

Sim

O código de autorização único.

client_id

Sim

O AppId do seu aplicativo.

redirect_uri

Sim

O URI de redirecionamento configurado para o seu aplicativo.

grant_type

Sim

Defina o valor como authorization_code conforme as especificações OAuth 2.0.

Parâmetros de resposta

Parâmetro

Localização

Tipo

Obrigatório

Descrição

access_token

body

STRING

Sim

O token de acesso gerado, válido por duas horas.

expires_time

body

STRING

Sim

O período de validade do token de acesso.

expire_in

body

STRING

Sim

O tempo restante de validade do token de acesso. Unidade: segundos.

token_type

body

STRING

Sim

Valor fixo: Bearer.

Exemplo de resposta bem-sucedida:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "access_token":"Aiasd76YSo23...LSdyssd2",
  "expires_time":"2019-11-11T10:10:10.009Z",
  "expire_in": 7200,
  "token_type":"Bearer",
  "refresh_token":"LSLKdklksd...li3ew6"
}
Nota

A resposta desta solicitação é idêntica à retornada ao obter o token de acesso via código de autorização, exceto pela ausência do parâmetro refresh_token.

Nota

Ignore os parâmetros opcionais na resposta.

4. Chame operações da API do Drive and Photo Service

Use o token de acesso para chamar operações da API do Drive and Photo Service. Inclua o token de acesso no cabeçalho Authorization das solicitações de API.

Para mais informações, consulte Método de chamada.

5. Atualize o token de acesso

(1) Sintaxe da solicitação de API

POST /v2/oauth/token HTTP/1.1
Host: {domainId}.api.aliyunpds.com
Content-Type: application/x-www-form-urlencoded

refresh_token=xxx\
&client_id=xxx\
&grant_type=refresh_token

Parâmetros da solicitação

Parâmetro

Obrigatório

Descrição

refresh_token

Sim

O token de atualização retornado durante a troca do código de autorização pelo token de acesso.

client_id

Sim

O AppId do seu aplicativo.

grant_type

Sim

O tipo de método de concessão. Defina o valor como refresh_token conforme as especificações OAuth 2.0.

client_secret

Não

O AppSecret do seu aplicativo, usado para autenticar o aplicativo.

(2) Resposta

HTTP/1.1 200 OK
Content-Type: application/json

{
  "access_token":"xxxxxxxxx",
  "expires_in":3920,
  "expire_time":"2019-11-11T10:10:10.009Z",
  "token_type":"Bearer"
}

Parâmetros de resposta

A estrutura da resposta para uma solicitação de atualização de token de acesso é igual à da solicitação para trocar um código de autorização por um token de acesso.