El Grant de Código de Autorización OAuth 2.0 es un método de autenticación común utilizado por muchos servicios, incluyendo GitHub, para permitir que aplicaciones de terceros accedan a datos de usuario sin compartir contraseñas. Implementarlo y depurarlo en Apidog puede ser una habilidad valiosa.
OAuth 2.0
OAuth 2.0 es un protocolo de autorización ampliamente utilizado que permite el acceso de terceros a recursos protegidos sin requerir credenciales de usuario. Involucra cuatro roles clave, que son Propietario del Recurso, Cliente, Servidor de Autorización y Servidor de Recursos.

Flujos de Autorización Comunes
El protocolo OAuth 2.0 implementa la autorización a través de varios flujos de autorización. Los flujos de autorización comunes incluyen:
- Grant de Código de Autorización: El cliente redirige al usuario al servidor de autorización. Después de que el usuario inicia sesión y otorga permiso, el servidor de autorización devuelve un código de autorización al cliente. El cliente luego intercambia el código de autorización junto con sus credenciales por un token de acceso.
- Grant de Código de Autorización con PKCE (Proof Key for Code Exchange): Similar al flujo de código de autorización estándar, pero el cliente mejora la seguridad utilizando PKCE (Proof Key for Code Exchange).
- Grant de Credenciales de Contraseña del Propietario del Recurso: El propietario del recurso proporciona directamente su nombre de usuario y contraseña al cliente. El cliente luego usa estas credenciales para solicitar un token de acceso del servidor de autorización.
- Grant de Credenciales de Cliente: El cliente solicita directamente un token de acceso del servidor de autorización utilizando sus propias credenciales. Este flujo es adecuado para los casos en que el propio cliente necesita acceso a los recursos.
- Grant Implícito: Se utiliza para obtener un token de acceso directamente del cliente en una aplicación basada en navegador. Este flujo se utiliza normalmente para aplicaciones frontend web.
Cómo Configurar Github OAuth 2.0 (Client ID y Client Secret)
Paso 1: Crear la aplicación y obtener el Client ID y el Client Secret
Para obtener el Client ID y la Client Key, primero necesitamos crear una aplicación. Haga clic en este enlace para crear una en Github: https://github.com/settings/applications/new, y luego complete su "Homepage URL" aquí Nombre de dominio, si es una depuración local, puede completar su servicio local, como http://127.0.0.1:8000.
Complete su dirección de callback en "Authorization callback URL", que puede ser su nombre de dominio o su dirección de callback local, como http://127.0.0.1:8000/callback.
Después de completar la configuración relevante, haga clic en "Register application" para crearla.

Después de crear la aplicación, se generan el Client ID y el Client Secret. La Client Key debe generarse por separado. Haga clic en "Generate a new client secret" para generar una clave.

Paso 2: Obtener el token de acceso
Cuando el primer paso anterior esté listo, podemos solicitar un token de acceso (Token). Demostraremos este paso a través de Apidog. Apidog es una excelente herramienta de depuración y gestión de API.

Puede obtener el token de acceso Token directamente en Apidog. Si aún no tiene Apidog instalado, ¡descargue uno ahora!
- Cree un nuevo proyecto HTTP en Apidog y ábralo, luego cree una nueva solicitud en el proyecto y seleccione la opción [Modify Document -> Auth -> OAuth 2.0 ->.

2. Configure el Client ID, la Client Key y la dirección de redireccionamiento
El modo de autorización predeterminado seleccionado en la página OAuth 2.0 en Apifdog es Código de Autorización (modo de código de autorización).
Debido a que Github OAuth 2.0 también usa Código de Autorización (modo de código de autorización), no necesita cambiar aquí.

Luego, encuentre el Client ID, el Client Secret y la Callback URL en la parte inferior de la página. El Client ID (Client ID), el Client Secret (Client Secret) y la dirección de callback configurada (Callback URL) se obtendrán del servicio OAuth 2.0 de Github.
Simplemente complételo. Los parámetros específicos son las configuraciones en el "Paso 1" anterior.

3. Configure la dirección de solicitud del código de autorización
Según la documentación oficial de Github, al realizar la autenticación OAuth 2.0, la dirección de solicitud (Auth URL) del código de autorización es:
https://github.com/login/oauth/authorize
Simplemente complete la dirección de solicitud de este código de autorización en la Auth URL. Podemos entender esta dirección como la página de autorización de inicio de sesión.
Esta página se abrirá cuando se verifique el estado de inicio de sesión por primera vez (es una ventana en el cliente), y luego se le pedirá que complete el nombre de usuario y la contraseña.

Generalmente, al construir manualmente la página de autorización de inicio de sesión, algunos parámetros deben llevarse después de la dirección de autorización.
Sin embargo, en Apidog, generalmente no es necesario llevar los parámetros después de la URL, solo la ruta delante del signo de interrogación? es suficiente, porque los demás son obligatorios. Los parámetros se han configurado por separado en otras opciones.
Por supuesto, si desea llevar algunos parámetros de consulta, también puede agregarlos. Haga clic en el icono detrás del cuadro de entrada para agregar:

También podemos expandir la opción "More" y completar los valores de los parámetros que deben completarse en las opciones correspondientes. Por ejemplo, en "Scope", puede completar los permisos requeridos, como read:user, user:email, etc.
Puede tener más permisos para otros Puede visitar el módulo de permisos de la documentación de ayuda de Github para verlo. Complete state en la opción "State". State es para evitar la falsificación de solicitudes entre sitios.

4. Configure la dirección de solicitud del token de acceso
Según la documentación oficial de Github, para solicitar un token de acceso, la URL solicitada es:
https://github.com/login/oauth/access_token
Simplemente complete la dirección anterior en el campo de entrada Access Token URL de la página OAuth 2.0 de Apidog.

5. Obtenga el token de acceso para el servicio Github OAuth 2.0
Después de configurar los elementos de configuración anteriores, puede hacer clic en el botón "Get Token" para obtener el token de acceso.
Después de hacer clic, si esta es la primera vez que inicia sesión, aparecerá una ventana para que autorice. Simplemente complete el nombre de usuario y la contraseña de su cuenta de Github.

Después de completar el nombre de usuario y la contraseña, se le pedirá que confirme la autorización o realice la verificación en dos pasos. Después de la verificación, haga clic en Confirmar.
Una vez que se completa la autorización, el token de acceso se obtendrá automáticamente y se mostrará en la página. Al mismo tiempo, también se analizará otra información devuelta por Github, como se muestra en la figura a continuación. Aquí se muestra "Expired" porque Github no nos devolvió el atributo expires_in, por lo que no podemos hacer un juicio. Sin embargo, este Token es utilizable. Iniciemos una solicitud a continuación.

Paso 3: Acceder a recursos abiertos basados en Token
Después de tener el token de acceso (Token), puede usar este token de acceso para llamar a los recursos abiertos de Github. Puede ver los recursos abiertos específicos en la API de Github.
Por ejemplo, la siguiente API obtiene información del usuario. Si su interfaz no regresa, debe verificar si tiene permisos. Como se mencionó en la Sección 3 del "Paso 2", simplemente configúrelo en Scope.

Al enviar una solicitud, Apidog agregará automáticamente el Token a la Autorización del encabezado de la solicitud, lo agregará al Bearer y lo enviará. Si desea llevar el Token en la URL, también puede modificar la "Add Location" del Token en los elementos de configuración de la página y seleccionar "Query Params".

Resumen
OAuth 2.0 es un marco de autorización que permite que las aplicaciones de terceros obtengan tokens de acceso sin requerir que el usuario proporcione un nombre de usuario y una contraseña. El proceso de autorización utilizado por GitHub es el "proceso de autorización de código de autorización", y su proceso de autorización se puede depurar y configurar en Apidog.