33K Views

Symfony Api De Rest + OAuth2

Updated 16 December 2021

Facebook Linkedin

En este Artículo vamos a continuar nuestro viaje con la api de desarrollo de la utilización de Oauth2 como Protocolo de Autorización.

Nuestro Anterior de la Api de desarrollo de los artículos son los siguientes:

  1. Soap VS Resto
  2. Api de Rest

Entender OAuth2:

El marco de autorización de OAuth 2.0 permite a una aplicación de terceros para obtener acceso limitado a un servicio HTTP, el nombre de un propietario de los recursos.

aquí hay algunos enlaces que he encontrado útil:

OAuth2 con Symfony::

Symfony ofrece FOSOAuthServerBundle, que puede ser utilizado para la implementación de servidor de OAuth2.

instructions se puede encontrar here.

Autorizar y token de rutas «@FOSOAuthServerBundle/Resources/config/routing/authorize.xml» & «@FOSOAuthServerBundle/Resources/config/routing/token.xml», definido en la hoja de ruta.yml será utilizado para la generación token de acceso.

OAuth Servidor tiene 3 puntos finales. Cada uno de los parámetros se realiza una función distinta en el proceso OAuth.

Autorizar Extremo – El usuario se redirige aquí por el cliente para autorizar la solicitud.
el Token Extremo
El cliente hace una petición a este extremo para obtener un Token de Acceso. Este es el mismo token URL definida en enrutamiento.yml.
el Fuente de Extremo(s)
El cliente proporciona un token de acceso válido para los pedidos de un recurso(s) en este extremo, como y/o usuarios.json.

Grant en OAuth2:

OAuth2 proporciona diferentes Subvención de tipos. Estos Subvención de Tipos le permiten exponer de múltiples maneras para que un cliente para generar un Token de Acceso.

1. El Código de Autorización:

El código de autorización tipo de subvención se utiliza cuando el cliente quiere solicitar el acceso a los recursos protegidos en nombre de otro usuario (es decir, una 3 ª parte). Leer más sobre el código de autorización
Ejemplo de Solicitud
Los códigos de autorización se recuperan mediante la Autorizo al Controlador. El cliente envía al usuario a la OAuth servidor de Autorizar la URL.

Paso 1: en Primer lugar, redirigir al usuario a Autorizar la URL:

Un éxito de la solicitud de pasar automáticamente al cliente el código de autorización en la dirección URL (suministrado redirect_uri URL) como

Paso 2: después de un token puede ser solicitado mediante el código de autorización token url,

Un éxito token de solicitud de devolución de un estándar token de acceso en formato JSON:

2. (Contraseña de propietario de los Recursos de la Subvención)

Propietario de los recursos del nombre de usuario y la contraseña proporcionada en la solicitud, y de un símbolo se otorga después de una autenticación exitosa.

La Autenticación es correcta resultará en un token de acceso,

3. Las Credenciales del cliente Subvención

El cliente utiliza las credenciales para recuperar un token de acceso directamente en el acceso a los recursos en el contexto del control del cliente

Nota: token de Acceso generados por el cliente credenciales de subvención que puede ser utilizado sólo para la lectura de la fuente. puesto que un token de acceso no autenticado por un usuario.

4. Actualización de Token de Subvención

Token de acceso(s) tiene un tiempo de vida limitado. por lo tanto, debemos actualizar caduca el token de actualización tokens de acceso.

Resultado en un éxito de la solicitud:

la Petición a un recurso extremo:

Si usted tiene alguna pregunta recurso Protegido extremo en segura de la api de firewall (fos_oauth: true), sin un token de acceso. a continuación, se va a producir,

para solicitar un recurso seguro, agregar la Autorización encabezado en la solicitud

los datos de retorno de symfony controlador:

En el controlador correspondiente para el recurso.datos json espalda

Consejos:

  1. Retorno adecuado de código de estado junto con la respuesta.
  2. en Lugar de depender de código de estado HTTP como un entero en su código, usar constantes de la Respuesta de la clase.
  3. Si usted está usando json de respuesta, a continuación, utilice JsonResponse de la Clase en lugar de Respuesta de la Clase.

Ejemplo:

Más información:

Ahora, usted tiene la plataforma para el desarrollo de la Api. así que adelante y desarrollarse.

Debido a que la Api es independiente de la plataforma, por lo que puede ser utilizado por cualquier Cliente Api.

Category(s) API uvdesk
. . .

Leave a Comment

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


Be the first to comment.