Sencillo test de prueba tipo blog (articulos y usuarios, en una relación one-to-many) del funcionamiento de la gema devise-auth-token cómo método de autenticación para APIs en ruby on rails 6.1
Para el desarrollo de éste código seguí la guía brindada por: https://www.youtube.com/channel/UCr9w-w_dwEK1pXp1Rec1K6g
Actualmente tengo el repositorio hosteado en Heroku y pueden testearlo si así lo desean: https://devise-auth-testing.herokuapp.com más abajo incluiré los endpoints, pero están todos detallados en la documentación.
La gema resulta muy útil y completa, tiene todas las funciones que una API podría necesitar para realizar la autenticacion de sus clientes, por ejemplo creación de cuentas, login, logout, validación de token, token refresh, invalidación de token después de cada request, confirmación de cuenta vía correo electrónico, cambio de contraseña, configuración de nickname de usuario y más. Su implementación es muy sencilla y la guía provista anteriormente detalla cada paso con precisión, la recomiendo 100% !
-
https://www.youtube.com/playlist?list=PLqsayW8DhUmsuvK17gwSI_rKbAlmxFIw5
-
CREAR CUENTA NUEVA -> POST: https://devise-auth-testing.herokuapp.com/api/auth
Acepta request tipo POST, parametros: email, password y password_confirmation. Al enviar el request se crea una nueva cuenta que deberá ser confirmada vía mail antes de poder ser utilizada.
-
LOGUEARSE -> POST: https://devise-auth-testing.herokuapp.com/api/auth/sign_in
Acepta request tipo POST, parametros: email, password. Antes de poder utilizar éste endpoint deberemos haber confirmado la cuenta vía mail, de otra manera recibiremos un error. Aquí recibiremos información acerca del usuario creado en el body, y recibiremos tres parametros muy importantes en Headers, uid(mail), client y access-token, los cuales utilizaremos luego para validar nuestra identidad.
-
VALIDAR TOKEN -> GET: https://devise-auth-testing.herokuapp.com/api/auth/validate_token
- Acepta request tipo GET, recibe cómo parametros: access-token, uid y client, los cuales obtuvimos al loguearnos. Si la información es correcta recibiremos un succress, de otra manera, será no autorizado o información invalida.
-
CREAR UN NUEVO ARTICULO -> POST: https://devise-auth-testing.herokuapp.com/api/articles
Para crear un nuevo articulo deberemos enviar vía header nuestro access-token, client y uid. Luego en el body debemos enviar los parametros title y body. Con ésto crearemos un nuevo articulo perteneciente a nuestro usuario. Para ver éste articulo realizaremos un GET en la misma dirección.
Pueden seguir revisando los endpoints posibles en: https://devise-token-auth.gitbook.io/devise-token-auth/usage la documentación está muy clara y precisa.
Por ultimo, adjunto algunas imágenes de la API siendo testeada en HEROKU.
Como podemos ver, la gema resulta muy poderosa para una API y puede ser utilizada en producción muy fácilmente, brinda una seguridad robusta y una configuración sencilla.