亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

登錄失敗后設計重定向

登錄失敗后設計重定向

FFIVE 2019-11-18 12:56:20
我發現的所有問題都與成功登錄幫助程序有關。 after_sign_in_path_for(resource)我在網站的索引中有一個登錄表單,當登錄失敗時,它將重定向到“ users / sign_in”但是,登錄失敗時如何重定向到“ site#index”?
查看完整描述

3 回答

?
莫回無

TA貢獻1865條經驗 獲得超7個贊

使用以下命令在您的lib目錄中創建一個custom_failure.rb:


class CustomFailure < Devise::FailureApp

  def redirect_url

    your_path

  end


  def respond

    if http_auth?

      http_auth

    else

      redirect

    end

  end

end

在您的Devise初始化程序中,包括:


  config.warden do |manager|

    manager.failure_app = CustomFailure

  end

確保Rails已加載到application.rb中的lib文件中:


config.autoload_paths += %W(#{config.root}/lib)

不要忘記重啟服務器。


我認為沒有比這更簡單的方法了。祝好運。


查看完整回答
反對 回復 2019-11-18
?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

如果使用您自己的SessionsController,則可以在運行之前重新分配的:recall值以auth_options重新調用所需的值,例如:controller#methodwarden.authenticate!(auth_options)


在app / controllers / users / sessions_controller.rb中


class Users::SessionsController < Devise::SessionsController

  #...

  def create

    #...

    auth_options = { :recall => 'site#index', :scope => :user }

    resource = warden.authenticate!(auth_options)

    #...

  end

  #...

end

通過這種方式,您無需創建自定義的FailureApp并修改配置。


查看完整回答
反對 回復 2019-11-18
?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

這是設計3.1.0發生的情況


Started POST "/users/sign_in"

Processing by Devise::SessionsController#create

Completed 401 Unauthorized

Processing by Devise::SessionsController#new

由于在gems / devise-3.1.0 / app / controllers / devise / sessions_controller.rb末尾定義的auth_options而調用了new


您應該重新定義在create操作中使用的auth_options。我將控制器復制到我的Rails應用程序的app / controllers / devise / sessions_controller.rb中,并替換了auth_options方法,如下所示


def auth_options

  { :scope => resource_name, :recall => "Home#new" }

end

它可以解決問題,但是url仍然是/ users / sign_in


我也會嘗試解決該問題。


查看完整回答
反對 回復 2019-11-18
  • 3 回答
  • 0 關注
  • 695 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號