Расширение проверки подлинности API Spree не работает - PullRequest
0 голосов
/ 05 ноября 2018

Я работаю над расширением для аутентификации пользователей через Spree API. У меня много поисков, но информации по этой теме почти нет, и несколько найденных расширений не работают.

Я создал расширение, основанное на найденных мной, и получаю следующую ошибку:

AbstractController :: ActionNotFound (Не удалось найти действие sign_in для Spree :: UsersController)

module Spree
  module Api

      #class UsersController < Spree::Api::V1::UsersController 
      Spree::Api::V1::UsersController.class_eval do
        before_action :authenticate_user, :except => [:sign_up, :sign_in]

        def sign_up

          @user = Spree::User.find_by_email(params[:user][:email])

          if @user.present?
            render "spree/api/users/user_exists", :status => 401 and return
          end

          @user = Spree::User.new(user_params)
          if !@user.save
            unauthorized
            return
          end
          @user.generate_spree_api_key!
        end

        def sign_in
          puts("hola controller")
          @user = Spree::User.find_by_email(params[:user][:email])
          if !@user.present? || !@user.valid_password?(params[:user][:password])
            unauthorized
            return
          end
          @user.generate_spree_api_key! if @user.spree_api_key.blank?
        end


        def user_params
          params.require(:user).permit(:email, :password, :password_confirmation)
        end


    #end
    end
  end
end

Мои маршруты.рб

Spree::Core::Engine.add_routes do
  # Add your extension routes here
  namespace :api, defaults: {format: 'json'} do
    resource :users do
        #resource :v1 do
        member do
          #post :sign_up
          post :sign_in
        end
    #end
    end
  end
end

Не могли бы вы помочь мне выяснить, что мне не хватает?

Спасибо

1 Ответ

0 голосов
/ 11 ноября 2018

Вам необходимо добавить маршруты в пространство имен v1 в config/routes.rb:

namespace :api do
  namespace :v1 do
    resource :users do
      member do
        post :sign_in
      end
    end
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...