Concessão de código de autorização
-
Pedido de Autorização
-
Primeiro, o aplicativo precisa decidir quais permissões solicitará e, em seguida, redirecionar o usuário para um navegador para obter essas permissões. Para iniciar esse fluxo de autorização, crie uma URL como a abaixo e redirecione o navegador do usuário final para essa URL:
ENTRE http://<wp_base_url>/wp-json/moserver/authorize
?response_type=code
&client_id= <client_id_goes_here>
&redirect_uri= <callback_url>
&scope= <permissions_requesting>
&state= <security_token>
tipo_de_resposta=código: O tipo de resposta que você espera. Para receber um código de autorização, ele deve ter um valor.
códigoIsso informa ao servidor de autorização que o aplicativo está iniciando o fluxo de autorização.
ID do cliente: O ID do cliente fornecido pelo provedor OAuth.
redirecionamento_uri: URL de retorno para a qual o usuário será redirecionado assim que permitir ou negar o acesso ao seu aplicativo.
escopo : Uma ou mais sequências de caracteres separadas por espaços que indicam a permissão que seu aplicativo está solicitando.
estado : O aplicativo gera uma string aleatória e a inclui na requisição. Em seguida, deve verificar se o mesmo valor é retornado após o usuário autorizar o aplicativo.
Se o usuário permitir o acesso ao seu aplicativo, o navegador dele será redirecionado para o URL de redirecionamento fornecido e a solicitação incluirá
código e estado parâmetros na string de consulta.
Por exemplo, o usuário pode ser redirecionado de volta para um URL como
https://example-app.com/redirect
?code=<authorization-code>
&state=<security_token>
O código É um código de autorização que pode ser trocado por um token de acesso. Ele é gerado pelo servidor de autorização e tem uma validade relativamente curta.
O estado É o mesmo token de segurança que o aplicativo definiu inicialmente na solicitação.
Solicitação de token
-
Se o usuário final concedeu acesso ao seu aplicativo e você recebeu um Código de Autorização, você pode trocar o Código de Autorização por um Token de Acesso fazendo uma solicitação POST para o endpoint de token.
- A seguir está um exemplo de solicitação POST:
POST http://<wp_base_url>/wp-json/moserver/token
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&
code=<authorization_code>&
client_id=<client_id>&
client_secret=<clientSecret>&
redirect_uri=<redirect_uri>
Aqui está a descrição de cada parâmetro de solicitação.
-
tipo_de_concessão=código_de_autorização: O tipo de concessão que você está fornecendo. Isso indica que o aplicativo está usando o tipo de concessão de código de autorização.
-
código: O código de autorização recebido na etapa anterior está incluído aqui.
-
redireciona_uri: O mesmo URI fornecido anteriormente na solicitação de autorização.
-
ID do cliente: O ID do cliente fornecido pelo provedor OAuth.
-
segredo_do_cliente: O segredo do cliente fornecido pelo provedor OAuth.
No endpoint de token, todos os parâmetros da requisição serão verificados para garantir que o código não tenha expirado e que o ID e o segredo do cliente correspondam. Se a requisição for bem-sucedida, um token de acesso será gerado e retornado na resposta.
HTTP/1.1 200 OK Tipo de conteúdo: aplicativo/json Controle de cache: no-store { "access_token":"hkjher92u9eu2u3uihi2eh9293", "token_type":"bearer", "expires_in":3600, "scope":"profile", "id_token":"" }
Aqui está a descrição de cada parâmetro recebido na resposta.
-
token de acesso: token de acesso para o ponto de extremidade Userinfo.
-
tipo_de_token: Valor do tipo de token OAuth 2.0. O valor deve ser O portador.
-
expira_em: O tempo de expiração do token de acesso.
-
escopo: Uma ou mais sequências de caracteres separadas por espaços que indicam a permissão que seu aplicativo está solicitando.
-
token de identificação: O token de ID é um token de segurança que contém declarações sobre a autenticação de um usuário final por um servidor de autorização ao usar um cliente e, potencialmente, outras declarações solicitadas.
Se a solicitação falhar, a resposta terá o status de
404 Bad Request e terá o seguinte conteúdo:
"error": "invalid_request", "error_description": "Uma descrição mais detalhada do erro destinada ao desenvolvedor do seu aplicativo."
Solicitação de Recursos
-
Se a solicitação do token for bem-sucedida, você receberá
token de acesso na resposta, que pode ser usada para acessar os recursos protegidos por meio da API.
-
Solicitação de informações do usuário: Segue abaixo um exemplo não formativo de uma solicitação de informações do usuário:
ENTRE http://<wp_base_url>/wp-json/moserver/resource
Host: server.example.com
Authorization: Bearer <access_token>
O servidor de recursos valida e verifica o token de acesso, checando se ele ainda não expirou. Se a solicitação de recurso for válida, o servidor retorna as declarações, que são representadas por um objeto JSON contendo uma coleção de pares nome-valor para as declarações.
Resposta bem-sucedida do Userinfo:
As declarações UserInfo DEVEM ser retornadas como membros de um objeto JSON.
Abaixo está o exemplo:
{ "id": "1", "nome de usuário": "abc", "nome": "xyz", "sobrenome": "exemplo", "imagem": "https://exemplo.com/-kwtzesU/foto.jpg", "e-mail": "abc@exemplo.com", "localidade": "en",... }
Concessão de Código Implícito
-
Pedido de Autorização
-
Primeiro, o aplicativo precisa decidir quais permissões solicitará e, em seguida, redirecionar o usuário para um navegador para obter essas permissões. Para iniciar esse fluxo implícito, crie uma URL como a abaixo e redirecione o navegador do usuário final para essa URL:
BAIXE http://<wp_base_url>/wp-json/moserver/authorize
?response_type=token
&client_id= <client_id_goes_here>
&redirect_uri= <callback_url>
&scope= <permissions_requesting>
&state= <security_token>
tipo_de_resposta=token: O tipo de resposta que você espera. Isso informa ao servidor de autorização que o aplicativo está iniciando um fluxo implícito. Observe a diferença em relação ao fluxo de código de autorização, onde esse valor é definido como "code".
ID do cliente: O ID do cliente fornecido pelo provedor OAuth.
redirecionamento_uri: URL de retorno para a qual o usuário será redirecionado assim que permitir ou negar o acesso ao seu aplicativo.
escopo : Uma ou mais sequências de caracteres separadas por espaços que indicam a permissão que seu aplicativo está solicitando.
estado : O aplicativo gera uma string aleatória e a inclui na requisição. Em seguida, deve verificar se o mesmo valor é retornado após o usuário autorizar o aplicativo.
Se o usuário permitir o acesso ao seu aplicativo, o navegador dele será redirecionado para o URL de redirecionamento fornecido e a solicitação incluirá
token digital único, e estado parâmetros na string de consulta.
Por exemplo, o usuário pode ser redirecionado de volta para um URL de retorno de chamada, como
https://callback-url?
#access_token=<access_token>
&token_type=Bearer
&expires_in=3600
&scope=<permissions_requesting>
Observe as duas principais diferenças entre este fluxo e o fluxo de código de autorização: o token de acesso é retornado em vez do código de autorização na resposta.
O cliente pode então usar o token de acesso Para acessar recursos protegidos do servidor de recursos.
Segue abaixo a descrição de cada parâmetro recebido na resposta.
-
token de acesso: token de acesso para o ponto de extremidade Userinfo.
-
tipo_de_token: Valor do tipo de token OAuth 2.0. O valor deve ser O portador.
-
expira_em: O tempo de expiração do token de acesso.
-
escopo: Uma ou mais sequências de caracteres separadas por espaços que indicam a permissão que seu aplicativo está solicitando.
Solicitação de Recursos
-
O endpoint UserInfo é um recurso protegido pelo OAuth 2.0 que retorna declarações (Claims) sobre o usuário final autenticado. As declarações retornadas são representadas por um objeto JSON que contém uma coleção de pares nome-valor para as declarações.
-
Solicitação de informações do usuário: Segue abaixo um exemplo não formativo de uma solicitação de informações do usuário:
ENTRE http://<wp_base_url>/wp-json/moserver/resource
Host: server.example.com
Authorization: Bearer <access_token>
Resposta bem-sucedida do Userinfo:
As declarações UserInfo DEVEM ser retornadas como membros de um objeto JSON.
Abaixo está o exemplo:
{ "id": "1", "nome de usuário": "abc", "nome": "xyz", "sobrenome": "exemplo", "imagem": "https://exemplo.com/-kwtzesU/foto.jpg", "e-mail": "abc@exemplo.com", "localidade": "en",... }
Concessão de senha
-
O tipo de concessão de senha do proprietário do recurso (ou "senha") é usado principalmente em casos onde o aplicativo é altamente confiável. Nessa configuração, o usuário fornece suas credenciais do servidor de recursos (nome de usuário/senha) para o aplicativo cliente, que as envia em uma solicitação de token de acesso.
-
Solicitação de token
-
A concessão de senha é uma das concessões OAuth mais simples e envolve apenas uma etapa: o aplicativo apresenta um formulário de login tradicional com nome de usuário e senha para coletar as credenciais do usuário e faz uma solicitação POST ao servidor para trocar a senha por um token de acesso. A solicitação POST feita pelo aplicativo é semelhante ao exemplo abaixo.
POST http://<wp_base_url>/wp-json/moserver/token
Host: authorization-server.com
Content-type: application/x-www-form-urlencoded
grant_type=password
&username=exampleuser
&password=12345678
&client_id=xxxxxxxxxx
&client_secret=xxxxxxxxxx
Os parâmetros POST nesta solicitação são explicados abaixo.
-
grant_type=senha : Isso informa ao servidor que estamos usando o tipo de concessão de senha.
-
nome de usuário = O nome de usuário que ele inseriu no aplicativo.
-
password = A senha do usuário que ele inseriu no aplicativo.
-
ID do cliente= O identificador público do aplicativo que o desenvolvedor obteve durante o registro.
-
segredo_do_cliente= O segredo do cliente fornecido pelo provedor OAuth.
No endpoint de token, todos os parâmetros da requisição serão verificados para garantir que o código não tenha expirado e que o ID e o segredo do cliente correspondam. Se a requisição for bem-sucedida, um token de acesso será gerado e retornado na resposta.
HTTP/1.1 200 OK Tipo de conteúdo: aplicativo/json Controle de cache: no-store { "access_token":"hkjher92u9eu2u3uihi2eh9293", "token_type":"bearer", "expires_in":3600, "scope":"profile", "id_token":"" }
O cliente pode então usar o token de acesso Para acessar recursos protegidos do servidor de recursos.
Segue abaixo a descrição de cada parâmetro recebido na resposta.
-
token de acesso: token de acesso para o ponto de extremidade Userinfo.
-
tipo_de_token: Valor do tipo de token OAuth 2.0. O valor deve ser O portador.
-
expira_em: O tempo de expiração do token de acesso.
-
escopo: Uma ou mais sequências de caracteres separadas por espaços que indicam a permissão que seu aplicativo está solicitando.
Solicitação de Recursos
-
O endpoint UserInfo é um recurso protegido pelo OAuth 2.0 que retorna declarações (Claims) sobre o usuário final autenticado. As declarações retornadas são representadas por um objeto JSON que contém uma coleção de pares nome-valor para as declarações.
-
Solicitação de informações do usuário: Segue abaixo um exemplo não formativo de uma solicitação de informações do usuário:
ENTRE http://<wp_base_url>/wp-json/moserver/resource
Host: server.example.com
Authorization: Bearer <access_token>
Resposta bem-sucedida do Userinfo:
As declarações UserInfo DEVEM ser retornadas como membros de um objeto JSON.
Abaixo está o exemplo:
{ "id": "1", "nome de usuário": "abc", "nome": "xyz", "sobrenome": "exemplo", "imagem": "https://exemplo.com/-kwtzesU/foto.jpg", "e-mail": "abc@exemplo.com", "localidade": "en",... }
Concessão de credenciais de cliente
-
A concessão de credenciais do cliente pode ser usada para autenticação máquina a máquina. Nessa concessão, um usuário específico não é autorizado, mas sim as credenciais são verificadas e um token de acesso genérico é retornado.
-
Solicitação de token
-
Para receber um token de acesso, o cliente envia uma solicitação POST à API com os valores de ID do cliente e segredo do cliente obtidos de um aplicativo de desenvolvedor registrado, conforme descrito a seguir.
POST http://<wp_base_url>/wp-json/moserver/token
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&
client_id=<client_id>&
client_secret=<clientSecret>&
redirect_uri=<redirect_uri>&
scope=<permisssions_requested>
Parâmetros da solicitação:
- Os parâmetros da solicitação POST são explicados abaixo.
-
tipo_de_concessão=credenciais_do_cliente: Isso informa ao servidor que estamos usando o tipo de concessão de credenciais do cliente.
-
ID do cliente= O identificador público do aplicativo que o desenvolvedor obteve durante o registro.
-
segredo_do_cliente: O segredo do cliente fornecido pelo provedor OAuth.
-
redirecionamento_uri: URL de retorno para a qual o usuário será redirecionado assim que permitir ou negar o acesso ao seu aplicativo.
-
escopo : Uma ou mais sequências de caracteres separadas por espaços que indicam a permissão que seu aplicativo está solicitando.
Se as credenciais forem válidas, o aplicativo receberá de volta um JSON Web Token assinado ou um token de acesso, o tipo do token (que é Bearer) e o tempo de expiração em tempo Unix.
Resposta de amostra
{ "token_de_acesso": , "expires_in": 600, "token_type": "Portador" }
Elementos de resposta:
-
token de acesso: token de acesso para o ponto de extremidade Userinfo.
- expira em O tempo de expiração do token de acesso.
-
tipo_de_token: Valor do tipo de token OAuth 2.0. O valor deve ser O portador.
Solicitação de Recursos
- O Concessão de credenciais de cliente não suporta Solicitação de Recursos.
Concessão de Token de Atualização
-
Um token de atualização permite que o aplicativo emita um novo token de acesso ou token de identificação sem precisar autenticar o usuário novamente. Isso funcionará enquanto o token de atualização não tiver sido revogado.
-
Solicitação de token
-
A resposta da solicitação de token deve conter o token de acesso e o token de atualização.
{ "access_token": "etMv23....429hiU32Hri", "refresh_token": "GEbRxBN...edjnXbL", "token_type": "Portador" }
Use um token de atualização:
Para trocar o Refresh Token recebido por um novo Access Token, faça uma requisição POST para o endpoint de tokens, usando
tipo_de_concessão=token_de_atualização do seguinte modo.
POST http://<wp_base_url>/wp-json/moserver/token
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token&
client_id=<client_id>&
client_secret=<client_secret>&
refresh_token=<refresh_token>
Aqui está a descrição de cada parâmetro de solicitação.
-
tipo_de_concessão=token_de_atualização: Isso informa ao servidor que estamos usando o tipo de concessão de token de atualização.
-
ID do cliente= O identificador público do aplicativo que o desenvolvedor obteve durante o registro.
-
segredo_do_cliente: O segredo do cliente fornecido pelo provedor OAuth.
- token de atualização: O token de atualização a ser usado.
A resposta incluirá um novo Token de Acesso, seu tipo, seu tempo de vida (em segundos) e os escopos concedidos. Se o escopo do token inicial incluía openid, um novo Token de ID também estará presente na resposta.
A resposta conterá os seguintes parâmetros:
{ "access_token": "eyJ...MoQ", "expires_in": 86400, "scope": , "id_token": "eyJ...0NE", "token_type": "Portador" }
Revogar um Token de Atualização
-
Como os tokens de atualização nunca expiram, é essencial poder revogá-los caso sejam comprometidos.
-
Para revogar um Token de Atualização, você pode enviar um POST A solicitação para o endpoint de token é feita da seguinte forma.
POST http://<wp_base_url>/wp-json/moserver/token
Content-Type: application/x-www-form-urlencoded
client_id=<client_id>&
client_secret=<client_secret>&
refresh_token=<refresh_token>
Teste grátis
Caso não encontre o que procura, entre em contato conosco pelo e-mail info@miniorange.com ou pelo telefone +1 978 658 9387 para obter uma resposta à sua pergunta sobre o servidor OAuth do WordPress.
Assista aos vídeos para saber mais
Assistir à demonstração