无法设计全授权工作

2024-02-23

我需要访问 google API,我试图让用户使用 Devise 2.1.1 和 Omniauth (使用 gemgoogle_oauth2因为 OAuth2 是 Google 文档推荐的)。

不幸的是我无法让它工作,这是routes.rb

TestApp::Application.routes.draw do
  root :to => 'Landing#index'

  devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }

  devise_scope :user do
    get 'sign_in', :to => 'users/sessions#new', :as => :new_session
    get 'sign_out', :to => 'users/sessions#destroy', :as => :destroy_session
  end
end

然后我配置了config/initializers/devise.rb包括一行

  config.omniauth :google_oauth2, 'ID', 'SECRET', {access_type: 'offline', approval_prompt: 'force', scope: 'https://www.googleapis.com/auth/analytics.readonly'}

实际上我有一个 void 回调类app/controllers/users/omniauth_callbacks_controller.rb

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
end

当我点击“使用 Google 登录”时,我在 Google 上被重定向,要求授权,然后我返回到回调,并在 URL 上被重定向http://localhost:3000/sign_in.user与错误

uninitialized constant Users::SessionsController

这是怎么回事?我花了两天时间试图自己弄清楚它,我尝试了很多配置但从未让它工作,这让我开始感到沮丧。

这是输出rake routes

root     /                                      Landing#index
user_omniauth_authorize     /users/auth/:provider(.:format)        users/omniauth_callbacks#passthru {:provider=>/google_oauth2/}
user_omniauth_callback     /users/auth/:action/callback(.:format) users/omniauth_callbacks#(?-mix:google_oauth2)
new_session GET /sign_in(.:format)                     users/sessions#new
destroy_session GET /sign_out(.:format)                    users/sessions#destroy    

您似乎被重定向到您的sign_in搜索的路线users/sessions#new根据你的routes.rb.

然而,Users::SessionsController不存在导致您描述的错误。

我不确定在哪些情况下 Devise/OmniAuth 会将您重定向到该特定路线,但我想您可以将其转到您的主页(人们可以再次单击 Google OAuth 登录按钮/链接)或直接将其连接到Google OAuth 页面。 (这可能会让人们陷入无限循环,具体取决于 Devise/OmniAuth 如何使用sign_in route.)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法设计全授权工作 的相关文章

  • 如何在控制器内部使用 auto_link

    在我的控制器中 我需要构建一个 JSON 对象 如何在控制器内使用 auto link 现在它错误 NoMethodError undefined method mail to for
  • 同一模型之间的两个 has_many 链接

    I have users其中有products通过 habtm 链接 该链接正在运行 我想添加一个链接user模型和product模型 以跟踪creator该产品的 当然 谁并不总是拥有该产品 但是当我写在我的user and produc
  • 如何更改 twitter-bootstrap 中文本区域的列数?

    如果我更改 rows 的值 它就会起作用 但无论我用 cols gt 设置什么值 它都会保持默认的 cols 列宽不会改变 我查看了 html 源代码 它反映了更改 我想知道 bootstrap 的 CSS 可能是嫌疑人 HTML 最终的
  • 在 Rails 6 上定义 Secret_key_base 的正确方法是什么?

    正确的定义方式是什么secret key base既然我们已经有了每个环境的凭据 就可以在 Rails 6 上使用了吗 我的环境有变量SECRET KEY BASE但 Rails 并没有接受它 我尝试定义secret key base in
  • 我们能否知道回形针下载何时完成?

    我有一个应用程序 我需要知道用户的 Rails Paperclip 文件下载时间complete 我的应用程序设置为与 Amazon S3 交互 当用户收到完整的文件时 我需要运行 JavaScript 函数 我怎样才能做到这一点 跟踪天气
  • Rails 4 - 如何链接到 PDF 文件(名称.PDF)?

    我正在生成 PDF 文件 我的链接如下所示 当我点击这个时 它会带我去 display invoice 123456789 这是一个 HTML 版本 在控制器中的操作如下 def display invoice if params invo
  • 如何在 Rails 3.2.1 版本中注释 Rails 模型

    我正在尝试遵循一些在线教程来在 Rails 中注释我的模型 然而 似乎所有教程都在谈论过时的注释版本或不正确的安装 这真是一团糟 到目前为止我已经尝试过以下方法 1 在 Gemfile 中添加此内容 gem annotate 2 4 0 2
  • 当一组工作人员完成时如何执行 Sidekiq 回调

    假设我有一个 Sidekiq 任务将产品处理到我的数据库 每个产品都按商店分组 因此我的代码的一个过于简化的示例将是这样的 stores each do store store products each do product Produc
  • 忽略 git 中的本地配置文件

    Rails 应用程序中有一些本地文件 属于我们存储库的一部分 我希望 git 忽略它们 基本上 我希望 git 忽略我对 config environments 目录和 config application rb 文件中的任何内容所做的所有
  • Rails 查询返回属于任何城市和不属于任何城市的用户

    I have Many to Many Associations两个表之间 对于前用户和城市 users id name 1 Bob 2 Jon 3 Tom 4 Gary 5 Hary cities id name 1 London 2 N
  • 预期的 ProductField,出现数组问题

    我有一个 Rails 4 应用程序 它有一个如下所示的 params 块 def store params params require store permit name description user id products attr
  • 在私有控制器方法中返回redirect_to

    前言 我正在使用设备进行身份验证 我试图阻止未经授权的用户查看 编辑或更新其他用户的信息 我最关心的是用户将 DOM 中的表单修改为另一个用户的 ID 填写表单 然后单击更新 我已经专门阅读过 像下面这样的东西应该有效 但事实并非如此 SO
  • Rails:CSRF 令牌不工作但已设置

    我在 Heroku 上有我的 Rails 3 应用程序 当我发送银行信息时 我得到 WARNING Can t verify CSRF token authenticity但我的 CSRF 令牌已设置 https gist github c
  • 使用 Ajax 在输入时提交 Textarea,然后渲染部分内容而不刷新整个页面

    目前我正在尝试通过 JS 和 Ajax 在没有提交按钮的情况下发表评论 并且它有效 问题是当帖子提交时 页面重新加载到 post id comment页面 我希望它呈现部分内容 而不是刷新整个页面或将我带到不同的页面 我对 JS 不熟悉 任
  • git push heroku master 权限被拒绝

    我正在关注 ruby railstutorial 我运行命令 git push heroku master 它吐出了这个错误 Permission denied publickey fatal Could not read from rem
  • Rails Active Admin css 与 Twitter Bootstrap css 冲突

    我对 Rails 资产管道有点陌生 所以我可能做错了什么 我正在尝试为我的后端使用 Active Admin 为我的前端应用程序使用 twitter bootstrap css 我将 bootstrap css 添加到 应用程序 资产 样式
  • 创建一个简单的 Rails 3 文本助手 Gem [重复]

    这个问题在这里已经有答案了 我一直在开发我的第一个 Rails 3 插件 以打包一个我喜欢在ApplicationHelper我所有的应用程序 你可以看到整个代码在 Github 上 https github com burlesona s
  • 将 Rails 变量传递给液体可以在控制台中工作,但不在视图中

    我想将哈希传递给渲染方法 当我这样做时 在我的控制台中一切正常 object Object find params id hash object object to liquid template Liquid Template parse
  • Ruby on Rails REST 设计问题 - 在账户之间转账

    我有一个 Account 类 想要实现转账屏幕以允许用户在 2 个账户之间转账 我将如何实现这种 RESTful 方式 我有标准帐户和休息操作 那很好 但我该如何实现转移呢 通常我只会向帐户控制器和相应的视图添加一个名为 transfer
  • 在 ec2 上托管 Rails

    我想将 Rails 部署到亚马逊 ec2 上 我看过 poolparty 和 ec2onrails 但似乎都不再维护了 人们用什么来做到这一点 都是自制的木偶和卡皮斯特拉诺 还是有一个项目可以让我继续下去 我可以推荐两个项目 如果您有一个

随机推荐

  • 如何将 mat4 数组作为统一传递

    我必须将 mat4 数组作为统一传递给我的顶点着色器 如下所示 在顶点着色器中 uniform mat4 u jointMatrix 2 在我的 C 程序中 我这样做了 glm mat4 jointM 2 I filled jointM w
  • 查询 Android 日历甚至可以检索已删除的事件

    我正在使用下面提到的代码从保存在 Android 本地日历应用程序中的所有日历中检索所有事件 现在 如果我从本机日历中删除某个事件 我的代码仍然会获取并显示该事件 这怎么可能 它是否设置了一些删除标志而不是实际删除事件 Cursor cur
  • C - 使用 select() 时如何限制服务器中的入站连接数

    我对 C 套接字编程还是新手 但我能够创建一些简单的客户端和服务器程序 我正在编写一个监听 TCP 连接的服务器 它的职责是响应客户端的请求 然后在客户端发送特殊的字节序列时 当然 或者当它断开连接时 关闭通信 我开始使用以下代码对服务器进
  • css 规则在 iOS9 上无法正常工作

    我对 iOS9 有一个关于网站 CSS 的问题 css 规则在 Android 和 iOS 8 上运行良好 但在 iOS9 上 网站出现混乱 这就是ios 8和ios 9的区别 可能的问题是什么 我该如何解决这个问题 感谢帮助 css se
  • Dropbox 文件唯一标识符 - RESTful API

    是否存在与 Dropbox 文件关联的唯一标识符 该标识符不会因修订 更改 重命名而更改 并且可以通过 RESTful API 进行访问 我想将它存储在数据库中并跟踪文件上的一些操作 不幸的是 不 Dropbox API 目前不公开任何类型
  • Java中将字符串转换为URL标准字符串

    我有一个字符串 例如 Cerepedia una apliaci n web 我想将其转换为有效的 URL 例如 Cerepedia unaaplicacionweb Note 特殊字符转换和空格删除 顺便问一下 URL 中允许使用逗号吗
  • Ionic:未定义不是构造函数 FileReader

    创建 FileReader 来自 ionic native file 实例时遇到问题 let f new FileReader 出现以下错误 TypeError undefined is not a constructor evaluati
  • 如何列出 Win32.DLL 中的可用方法

    我有一个 DLL 文件 其中包含一些我想在应用程序中调用的有用函数 我不再有它的文档了 如何发现 DLL 导出的函数及其方法签名 是否有列出函数及其参数的实用程序 转储箱 出口 Dumpbin http msdn microsoft com
  • 你能在同一对象的非重叠区域之间进行memcpy吗?

    C17 说以下内容memcpy 7 24 2 1p2 memcpy函数将s2指向的对象中的n个字符复制到指向的对象中 通过 s1 如果复制发生在objects重叠 行为是未定义的 常见的解释是您不能复制重叠的内存区域 但这并不完全相同 因为
  • jQuery UI 对话框不会关闭

    在我的网页上有一个按钮可以打开模式 jQuery 对话框 单击按钮时运行的代码如下 main onoffline container append div div dialog modal a dialog title Add Tags a
  • 如何在 Dreamweaver 中使用 javascript 使元素固定在某个点

    我知道有很多与此类似的问题 但在 Dreamweaver 中似乎没有一个解决方案适合我 任何人都可以提供 JavaScript 代码或我可以轻松插入到 Dreamweaver 文件中的内容吗 我需要应用它的代码如下 div div
  • 原子别名交换在完全不相关的索引上失败并出现 index_not_found_exception

    我想以零停机时间进行替换和索引 如中所述ES 文档 https www elastic co guide en elasticsearch guide current index aliases html 我这样做是通过 创建一个新索引my
  • 如何使用 django-simple-history 恢复更改,特别是删除

    We have django simple history为我们的模型设置 最近一大堆模型被神秘删除 这是在事后几天注意到的 因此最好避免完整的数据库备份恢复 因为这会擦除事后发生的手动更改 我找不到任何方法来轻松恢复模型实例 特别是已删除
  • Tkinter 显示扭曲的图像

    我正在尝试使用 Tkinter 显示 gif 但是当 gif 加载时 它看起来很奇怪 我已经粘贴了原始 gif 和 Tkinter 中显示的 gif 的屏幕截图 这种情况不仅仅发生在一张 gif 中 而是出现在我使用的每一张 gif 中 G
  • 我们可以在 Android 中使用缩放手势检测器进行捏缩放吗?

    我们可以在 Android 中使用缩放手势检测器进行捏缩放吗 您可以创建一个可重用的类来实现OnTouchListener来实现这一目标 public class MyScaleGestures implements OnTouchList
  • 在 Windows/mingw 上,`fcntl(fd, F_GETFL) | 等价于什么? O_ACCMODE`?

    我正在 Windows 上用 Mingw 编译一个程序 如何获取打开的文件描述符的访问模式 根据Win32 hlp API提供了该功能BOOL GetFileInformationByHandle HANDLE hFile LPBY HAN
  • 无法编译 parquet-tools

    我克隆了存储库parquet mr from 这个链接 http git 20clone 20https github com Parquet parquet mr git 我想要建造的parquet tools正如所解释的here htt
  • Python file.write 创建额外的回车符

    我正在使用 python 将一系列 SQL 语句写入文件 模板字符串如下所示 store insert tinsert stores storenum values s 我像这样写入文件 for line in source line li
  • 如何衡量字符串之间的相似度?

    我有很多名字 我想获得唯一的名字 然而 由于拼写错误和数据不一致 名称可能写错 我正在寻找一种方法来检查字符串向量是否其中两个相似 例如 pres lt c Obama B Bush G W Obama B H Clinton W J 我想
  • 无法设计全授权工作

    我需要访问 google API 我试图让用户使用 Devise 2 1 1 和 Omniauth 使用 gemgoogle oauth2因为 OAuth2 是 Google 文档推荐的 不幸的是我无法让它工作 这是routes rb Te