使用omniauth-facebook“无效凭据”进行设计

Posted

技术标签:

【中文标题】使用omniauth-facebook“无效凭据”进行设计【英文标题】:Devise with omniauth-facebook "Invalid Credentials" 【发布时间】:2011-12-09 12:11:46 【问题描述】:

我正在尝试通过 omniauth-facebook 与 Devise 一起使用 Facebook 身份验证,我已按照此处的说明进行操作:https://github.com/plataformatec/devise/wiki/OmniAuth%3a-Overview

当我使用 Facebook 链接登录时,我被重定向到 Facebook 以登录并接受请求的权限。

然后我被带回 /users/sign_in 并显示错误消息“无法从 Facebook 授权您,因为“凭据无效””

查看服务器日志,重定向来自“/users/auth/facebook/callback?code=[long text string]”,正在使用 Users::OmniauthCallbacksController#failure 而不是 Users::OmniauthCallbacksController#facebook 处理如果它奏效了,我会预料到的。

任何关于为什么会发生这种情况以及如何解决它的建议都非常感谢。

【问题讨论】:

面临同样的问题,只有 部分 的用户得到了错误。 我在更新omniauth 后遇到了同样的问题,但仅限于非隐身模式下的chrome。我自己的 facebook 用户在我的日常 chrome 中被拒绝,即使我试图清除它的 cookie 等。Safari、FF 和 chrome-incognito 工作正常。 (我还没发布,不知道其他用户有没有这个问题) 【参考方案1】:

好的,我遇到了同样的问题。我的原因原来是我在 config/initializers/devise.rb 中定义了这一行:

config.omniauth :facebook ...

应用 ID 和应用密码是为我的测试 Facebook 应用和生产应用定义的。修复那些 id:s 现在解决了问题。

【讨论】:

你是如何修复这些 id 的?【参考方案2】:

facebook 将协议从 oauth 更改为 oauth2 凭据(id、token、name..)现在打包到一个哈希中的主要区别。你应该解析。

【讨论】:

根据omniauth-facebook github页面,支持oauth2

以上是关于使用omniauth-facebook“无效凭据”进行设计的主要内容,如果未能解决你的问题,请参考以下文章

Google OAuth 登录错误:凭据无效

无效的凭据引发身份验证突变异常

使用 JWT 在 Laravel 中获取“无效凭据”

使用服务帐户通过 PHP API 访问 BigQuery 时出现“无效凭据”

由于应用程序/无效凭据错误,无法发送设备推送通知

spring security reactive - 如何调试“无效凭据”错误?