tutorial rails ruby-on-rails ruby ruby-on-rails-4 devise rails-api

ruby on rails - tutorial - Autenticación basada en token para las API JSON de Rails



ruby on rails 5 rest api (4)

Aquí hay un buen tutorial sobre la autenticación de API con devise_token_auth . Además, la página de github de devise_token_auth gem parece tener una muy buena documentación que debería ayudarlo a comenzar.

Si está buscando un buen tutorial para comprender los conceptos relacionados, aquí hay uno que explica detalladamente la creación de una API de Rails con autenticación basada en token (no utiliza devise_token_auth , pero es útil para entender los conceptos).

También te recomiendo que eches un vistazo al JWT (JSON Web Token) que funciona muy bien con la API de Rails a gran escala. Aquí hay otro tutorial que explica cómo construir la API de Rails respaldada con JWT

Hago API en rieles. Para la autenticación normal usamos el dispositivo, pero en la API, cómo implementar el dispositivo para la autenticación.

gem ''devise_token_auth''

Alguien prefiere esta gema para la autenticación, pero no hay tutorial disponible para eso. ¿Cómo implementar la autenticación en rieles api?


En mi proyecto actual he implementado simple_token_authentication . Es bastante fácil de implementar y usar también.

Solo agregue lo siguiente a su Gemfile y ejecute bundle install

gem ''simple_token_authentication'', ''1.12.0''

El resto de los pasos se encuentran en su documentación y también son fáciles de seguir.


Lo mejor que puedes hacer es seguir los tutoriales de github que tienen más probabilidades de estar actualizados.

Primero debes seguir la parte de TLDR .
Tenga en cuenta que los desarrolladores de aplicaciones frontales deben conocer la especificación de uso .
Finalmente quieres ir a través de la documentación. Aquí hay algunas muestras que podrían ayudar:

Rutas

Rails.application.routes.draw do # Stuff devise_for :admin_users, ActiveAdmin::Devise.config ActiveAdmin.routes(self) devise_for :users root to: "home#index" # The API part namespace :api, defaults: {format: :json} do scope :v1 do mount_devise_token_auth_for ''User'', at: ''auth'', skip: [:omniauth_callbacks] resources :stuff, only: [:index, :show] end end end

Un controlador :

module Api class StuffsController < ApiController before_action :authenticate_user! ... end end

Controlador API

class ApiController < ApplicationController include DeviseTokenAuth::Concerns::SetUserByToken end

Modelo de usuario

class User < ActiveRecord::Base # Include default devise modules. devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable include DeviseTokenAuth::Concerns::User end

Finalmente no olvides configurar la gema en el inicializador correspondiente.


Puedes agregar los atributos "authentication_token" a tu tabla y usar esta gema:

https://github.com/robertomiranda/has_secure_token

en application_controller:

def authenticate_user! authenticate_user_from_token! super end def authenticate_user_from_token! User.find_by_authentication_token(user_token) end def user_token request.headers[''X-AUTH-TOKEN''].presence || params[''auth_token''].presence end