35K Views

Symfony Rest Api + OAuth2

Updated 16 December 2021

Facebook Linkedin

Neste Artigo vamos continuar a nossa jornada com a api de desenvolvimento do uso de Oauth2 como Protocolo de Autorização.

O nosso Anterior Api de desenvolvimento de artigos abaixo:

  1. Soap VS Resto
  2. Rest Api

Entender OAuth2:

A autorização OAuth 2.0 framework permite que um aplicativo de terceiros para obter acesso limitado a um serviço de HTTP, o nome de um recurso proprietário.

aqui estão alguns links que achei útil:

OAuth2 com o Symfony::

Symfony dispõe de FOSOAuthServerBundle, que pode ser utilizado para a implementação do lado do servidor de OAuth2.

instructions pode ser encontrada here.

Autorizar e token de rotas “@FOSOAuthServerBundle/Resources/config/routing/authorize.xml” & “@FOSOAuthServerBundle/Resources/config/routing/token.xml”, definidos no roteiro.yml será utilizado para a geração de token de acesso.

Um OAuth Servidor tem 3 pontos de extremidade. Cada ponto de extremidade executa uma função distinta no OAuth processo.

Autorizar o ponto de Extremidade – O usuário é redirecionado aqui pelo cliente para autorizar o pedido.
o Token ponto final
que O cliente faz um pedido para esse ponto de extremidade para obter um Token de Acesso. Este é o mesmo token URL definida em encaminhamento.yml.
o Fonte Parâmetro(s)
O cliente fornece um token de acesso válido para pedidos de um recurso(s) sobre este ponto, como e/ou usuários.json.

Grant em OAuth2:

OAuth2 fornece diversos tipos de Subsídios. Estes Tipos de Subsídio permitem que você exponha várias maneiras para um cliente para gerar um Token de Acesso.

1. O Código de Autorização:

O código de autorização a conceder tipo é usado quando o cliente deseja solicitar o acesso a recursos protegidos em nome de outro usuário (i.e. uma festa de 3). Leia mais sobre o código de autorização
Exemplo de Pedido de
Códigos de autorização são recuperados usando a Autorizar o Controlador. O cliente envia o usuário para o OAuth servidor Autorizar a URL.

Passo 1: Primeiro de tudo, redirecionar o usuário para a Autorizar URL:

Um pedido bem sucedido, irá automaticamente passar o cliente o código de autorização na URL (o fornecido redirect_uri URL)

Passo 2: depois de um token podem ser solicitadas usando o código de autorização de url de token,

O sucesso de um pedido de token irá retornar um padrão token de acesso em formato JSON:

2. Senha (proprietário do Recurso de Subvenção)

O Proprietário do recurso de nome de utilizador e palavra-passe fornecidas na solicitação, e um token é concedido após uma autenticação bem-sucedida.

A Autenticação bem-sucedida irá resultar em um token de acesso,

3. As Credenciais do cliente Conceder

O cliente usa as credenciais para obter um token de acesso diretamente ao acesso a recursos no contexto do controlo do cliente

Nota: token de Acesso gerado pelo cliente credenciais de subvenção pode ser utilizado somente para a leitura da fonte. uma vez que tal um token de acesso não autenticado por um usuário.

4. Atualização Token Conceder

Token de acesso(s) tem um ciclo de vida limitado. assim, temos que atualizar expira o token de atualização token de tokens de acesso.

Resultar em uma solicitação bem-sucedida:

a Solicitação para um recurso de ponto de extremidade:

Se você tiver quaisquer perguntas recurso Protegido do ponto de extremidade na api segura firewall (fos_oauth: true), sem um token de acesso. em seguida, ele irá resultar em,

para solicitar um seguro de recurso, adicione Autorização cabeçalho de solicitação de

retornar os dados do symfony controlador:

O controlador correspondente para o recurso.dados json de volta

Dicas:

  1. Retorno adequado estado de código, juntamente com a resposta.
  2. em Vez de depender de código de status do HTTP como número inteiro no seu código, usar constantes da classe de Resposta.
  3. Se você estiver usando json de resposta e, em seguida, use JsonResponse de Classe em vez de Resposta Classe.

Exemplo:

Mais:

Agora, você tem a plataforma para o desenvolvimento da Api. então, vá em frente e se desenvolver.

Como a Api é independente de plataforma, assim ele poderá ser usado por qualquer adequados a Api do Cliente.

Category(s) API uvdesk
. . .

Leave a Comment

Your email address will not be published. Required fields are marked*


Be the first to comment.