Concessão de código de autorização
-
Pedido de Autorização
-
O aplicativo precisa primeiro decidir quais permissões está solicitando e, em seguida, enviar o usuário a um navegador para obter a permissão. Para iniciar esse fluxo de autorização, crie uma URL como abaixo e redirecione o navegador do usuário final para a 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 o código de autorização, ele deve ter valor
código. Isso 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 quando ele permitir ou não o acesso ao seu aplicativo.
escopo : Uma ou mais strings 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 solicitação. Ele deve então verificar se o mesmo valor é retornado após o usuário autorizar o aplicativo.
Se o usuário permitir o acesso ao seu aplicativo, seu navegador 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 processo de 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 vida útil relativamente curta.
O processo de 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 ao ponto de extremidade do 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, incluído aqui.
-
redireciona_uri: O mesmo URI que foi 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 ponto final do token, todos os parâmetros da solicitação serão verificados, garantindo que o código não tenha expirado e que o ID do cliente e o segredo correspondam. Se a solicitaçã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 strings separadas por espaços que indicam a permissão que seu aplicativo está solicitando.
-
token de identificação: O ID Token é 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: A seguir está um exemplo não formativo de solicitação Userinfo:
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 e verifica se ele não expirou. Se a solicitação de recurso for válida, o servidor de recursos retorna as declarações, que são representadas por um objeto JSON que contém uma coleção de pares de nome e 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
-
O aplicativo precisa primeiro decidir quais permissões está solicitando e, em seguida, enviar o usuário a um navegador para obter sua permissão. Para iniciar esse fluxo implícito, crie uma URL como abaixo e redirecione o navegador do usuário final para a 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ê está esperando. 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 este valor é definido como código.
ID do cliente: O ID do cliente fornecido pelo provedor OAuth.
redirecionamento_uri: URL de retorno para a qual o usuário será redirecionado quando ele permitir ou não o acesso ao seu aplicativo.
escopo : Uma ou mais strings 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 solicitação. Ele deve então verificar se o mesmo valor é retornado após o usuário autorizar o aplicativo.
Se o usuário permitir o acesso ao seu aplicativo, seu navegador 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 e o fluxo do 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.
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 strings separadas por espaços que indicam a permissão que seu aplicativo está solicitando.
Solicitação de Recursos
-
O endpoint UserInfo é um recurso protegido por OAuth 2.0 que retorna declarações 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 de nome e valor para as declarações.
-
Solicitação de informações do usuário: A seguir está um exemplo não formativo de solicitação Userinfo:
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 "password") é usado principalmente em casos em que o aplicativo é altamente confiável. Nessa configuração, o usuário fornece suas credenciais do servidor de recursos (nome de usuário/senha) ao aplicativo cliente, que envia 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 se parece com o 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 eles inseriram 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 ponto final do token, todos os parâmetros da solicitação serão verificados, garantindo que o código não tenha expirado e que o ID do cliente e o segredo correspondam. Se a solicitaçã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.
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 strings separadas por espaços que indicam a permissão que seu aplicativo está solicitando.
Solicitação de Recursos
-
O endpoint UserInfo é um recurso protegido por OAuth 2.0 que retorna declarações 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 de nome e valor para as declarações.
-
Solicitação de informações do usuário: A seguir está um exemplo não formativo de solicitação Userinfo:
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 de Cliente pode ser usada para autenticação de máquina para máquina. Nesta concessão, um usuário específico não é autorizado, mas as credenciais são verificadas e um access_token genérico é retornado.
-
Solicitação de token
-
Para receber um token de acesso, o cliente envia uma chamada de API POST com os valores de ID do cliente e segredo do cliente obtidos de um aplicativo de desenvolvedor registrado, conforme 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 quando ele permitir ou não o acesso ao seu aplicativo.
-
escopo : Uma ou mais strings 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 ou token de acesso assinado, o tipo do token (que é Bearer) e em quanto tempo ele expira 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 processo de 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 ID 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 um token de acesso e um token de atualização.
{ "access_token": "etMv23....429hiU32Hri", "refresh_token": "GEbRxBN...edjnXbL", "token_type": "Portador" }
Use um token de atualização:
Para trocar o Token de Atualização que você recebeu por um novo Token de Acesso, faça uma solicitação POST para o ponto de extremidade do token, 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á 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 solicitação ao ponto de extremidade do token 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
Se não encontrar o que procura, entre em contato conosco em
info@miniorange.com
ou ligue para +1 978 658 9387 para encontrar uma resposta à sua pergunta sobre o Wordpress OAuth Server.
Assista aos vídeos para saber mais
Assistir à demonstração