Rails - 跳过设计身份验证不起作用

时间:2016-12-16 18:56:27

标签: ruby-on-rails ruby ruby-on-rails-4 devise

我正在尝试跳过我的订阅控制器的设计身份验证,但无济于事。我的注册控制器和会话控制器skip_before_filter都工作但不是我刚刚添加的订阅控制器。我做错了什么?

class V1::SubscriptionsController < ApplicationController
skip_before_filter :authenticate_user!
skip_before_filter :verify_authenticity_token, if: :json_request?


def create

    @subscription = Subscription.new(subscription_params)

    if @subscription.save 
        render json: @subscription, status: :created
    else
        render json: @subscription.errors, status: :unprocessable_entity
    end
end

private

def subscription_params
    params.require(:subscription).permit(:subscription_email)
end
end

我的应用程序控制器

class ApplicationController < ActionController::API
  include CanCan::ControllerAdditions
  include ActionController::RespondWith
  include ActionController::Serialization

  acts_as_token_authentication_handler_for User

  rescue_from CanCan::AccessDenied do |exception|
    respond_to do |format|
      format.json { render nothing: true, status: :forbidden }

    end
  end
end

我的路线

Rails.application.routes.draw do

devise_for :users, skip: [:sessions, :registrations, :passwords]

  api_version(module: "V1", header: { name: "Accept", value: "application/vnd.rolotext.json; version=1" }) do
    devise_scope :user do
      post 'registrations' => 'registrations#create'


      post 'sessions' => 'sessions#create'
      delete 'sessions' => 'sessions#destroy'

      post 'passwords' => 'passwords#create'
      patch 'passwords' => 'passwords#update'
      post   'passwords/check_email' => 'passwords#check_email'
    end

    get '/me' => "users#me"
    patch '/me' => 'users#update'
    delete '/me' => 'users#destroy'


    resources :cards, except: [ :new, :edit]
    patch '/logos' => 'logos#update'
    resources :logos, except: [ :new, :edit, :destroy ]
    resources :uploads
    post '/subscriptions' => "subscriptions#create"

  end
end

任何帮助都会非常感激

1 个答案:

答案 0 :(得分:0)

如果我想从auth中排除某些页面,我通常会在我的用户控制器中添加它:

before_filter :authenticate_user!, except: [:sessions, :registrations, :passwords]

除了..之外,它应该排除页面的auth 希望它有所帮助。

相关问题