Création d'un service Web avec API. Pour implémenter une fonction de connexion utilisateur. C'était la première fois que je créais une fonction de connexion API, je l'ai donc implémentée en me référant à la page suivante.
Implémentation de l'API de connexion pour l'authentification par jeton dans Rails-Qiita
MacBookAir ruby 2.6.3 Rails 6.0.3.2
config/routes.rb
Rails.application.routes.draw do
namespace 'api' do
namespace 'v1' do
post '/login', to: 'sessions#create'
end
end
end
$rails g migration Add_token_To_Users token:token
Ce qui suit est créé
db/migrate/20200911133819_add_token_to_users.rb
class AddTokenToUsers < ActiveRecord::Migration[6.0]
def change
add_column :users, :token, :string
add_index :users, :token, unique: true
end
end
class User < ApplicationRecord
has_secure_token
end
app/controllers/api/v1/users_controller.rb
module Api
module V1
class SessionsController < ApplicationController
def create
user = User.find_by(email: session_params[:email])
if user&.authenticate(session_params[:password])
session[:user_id] = user.id
return render json: { token: user.token}
else
return render json: { status: 401, message: "la certification a échoué" }
end
end
private
def session_params
params.require(:session).permit(:email, :password)
end
end
end
end
On dirait que c'est fait.
Je dois désormais implémenter la fonction de déconnexion.
Recommended Posts