【问题标题】:Overriding paranoid verification code devise security controller in RoR覆盖偏执狂验证码在 RoR 中设计安全控制器
【发布时间】:2021-08-12 02:45:10
【问题描述】:

我按照以下步骤操作:

在 Gemfile 中添加:

gem 'devise-security', '~> 0.16.0'

运行这个命令:

rails generate devise_security:install

在资源模型文件中添加 paranoid_verification:

class User < ApplicationRecord
  rolify
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
  devise :database_authenticatable, :registerable, :invitable, :confirmable,
         :recoverable, :validatable, :saml_authenticatable, :paranoid_verification

自定义路线:

  devise_for :users,
     path: '',
     path_names: {
       sign_in: 'signin',
       registration: 'signup',
       confirmation: 'verification',
     },
    controllers: {
      sessions: 'users/sessions',
      registrations: 'users/registrations',
      confirmations: 'users/confirmations',
      passwords: 'users/passwords',
      invitations: 'users/invitations',
      verification_code: 'users/paranoid_verification_code',
    },
    skip: [:unlocks, :omniauth_callbacks, :saml_authenticatable],
    defaults: { format: :json }

在 app/controllers/users/paranoid_verification_code_controller.rb 中添加我自己的控制器:

# frozen_string_literal: true

class Users::ParanoidVerificationCodeController < Devise::ParanoidVerificationCodeController
  skip_before_action :handle_paranoid_verification
  prepend_before_action :authenticate_scope!, only: [:show, :update]

但 rake 路由仍显示以下内容:

      user_paranoid_verification_code GET      /verification_code(.:format)                                                             devise/paranoid_verification_code#show {:format=>:json}
                                  PATCH    /verification_code(.:format)                                                             devise/paranoid_verification_code#update {:format=>:json}
                                  PUT      /verification_code(.:format)                                                             devise/paranoid_verification_code#update {:format=>:json}

我做错了什么??其他控制器(可邀请、可注册等)正常工作

【问题讨论】:

    标签: ruby-on-rails ruby controller devise overriding


    【解决方案1】:

    原来应该是这样

    paranoid_verification_code: 'users/paranoid_verification_code',
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-26
      相关资源
      最近更新 更多