gpt4 book ai didi

ruby-on-rails - 使用 OAuth 和 Rails 的注销路由

转载 作者:太空宇宙 更新时间:2023-11-03 18:08:08 24 4
gpt4 key购买 nike

我正在使用 OAuth 2 gem 通过 google 和 facebook 进行身份验证。当我从我的应用程序注销时,我需要从 google 和 facebook 注销。在 OA 文档中说:

devise_scope :user do
delete 'sign_out', to: 'devise/sessions#destroy', as: :destroy_user_session
end

将此添加到 routes.rb。我这样做了,我的 routs rb 现在看起来像:

Rails.application.routes.draw do
devise_for :users, controllers: { omniauth_callbacks: 'callbacks' }
devise_scope :user do
delete 'sign_out', to: 'devise/sessions#destroy', as: :destroy_user_session
end

当我添加这一行时,当我尝试 rails 我的应用程序时出现错误:

/Users/damirik/.rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.1/lib/action_dispatch/routing/route_set.rb:507:in add_route': Invalid route name, already in use: 'destroy_user_session' (ArgumentError)
You may have defined two routes with the same name using the
:as` option, or you may be overriding a route already defined by a resource with the same naming.

我真的不明白如何解决它。请帮忙

最佳答案

查看 devise_for方法文档,我可以看到它已经添加了确切的 delete 'sign_out' 路由,这使得它变得多余。

这应该足以使您的代码正常工作。

Rails.application.routes.draw do
devise_for :users, controllers: { omniauth_callbacks: 'callbacks' }
end

关于ruby-on-rails - 使用 OAuth 和 Rails 的注销路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40243507/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com