- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个站点配置为使用 Devise 和 Omniauth 与多个 Oauth2 API 一起工作,直到上周才正常运行。目前使用 Twitter 和 Github 登录仍然可以正常使用;然而,Facebook、LinkedIn 和 Google 给我一个错误,指出重定向 URI 不匹配。错误信息如下:
Facebook:
ERROR -- omniauth: (facebook) Authentication failure! invalid_credentials: >OAuth2::Error, : {"error":{"message":"Error validating verification code. Please make sure your >redirect_uri is identical to the one you used in the OAuth dialog request","type":"OAuthException","code":100,"fbtrace_id":"XXXXXXXXXX"}}
LinkedIn:
ERROR -- omniauth: (linkedin) Authentication failure! invalid_credentials: >OAuth2::Error, invalid_request: missing required parameters, includes an invalid parameter value, parameter more than once. : Unable to retrieve access token : appId or redirect uri does not match authorization code or authorization code expired {"error_description":"missing required parameters, includes an invalid parameter value, parameter more than once. : Unable to retrieve access token : appId or redirect uri does not match authorization code or authorization code expired","error":"invalid_request"}
ERROR -- omniauth: (google_oauth2) Authentication failure! invalid_credentials: >OAuth2::Error, redirect_uri_mismatch: { "error" : "redirect_uri_mismatch" }
我查看了在 Chrome 开发者控制台中为所有这三个发送的请求,回调的重定向 uri 与每个 API 注册的 uri 相匹配(自运行以来没有改变)。
回溯这个错误的挑战是我不能 100% 确定这些停止工作是因为我直接登录还是在最近的集成测试中安装新功能时使用 Github 登录。 (重要的教训!)可能会影响这一点的重大变化之一是我集成了 Devise 的 Traceable 扩展,这让我需要 Warden Gem。但是,我删除了 Traceable 和 Warden 配置,并将用户模型和配置文件恢复到之前的状态,但我遇到了同样的问题。
我通常更愿意提供更多代码示例,但老实说,我不确定从什么代码开始。我希望有人遇到过类似的问题,并能指出正确的开始方向。
首先,下面是我的 Devise Initializer,删除了注释以缩短
Devise.setup do |config|
config.mailer_sender = 'no-reply@' + ENV['DOMAIN_NAME']
config.mailer = 'Devise::Mailer'
require 'devise/orm/active_record'
config.case_insensitive_keys = [:email]
config.strip_whitespace_keys = [:email]
config.skip_session_storage = [:http_auth]
config.stretches = Rails.env.test? ? 1 : 10
config.allow_unconfirmed_access_for = 10.days
config.reconfirmable = true
config.confirmation_keys = [:email]
config.remember_for = 2.weeks
config.expire_all_remember_me_on_sign_out = true
config.password_length = 8..72
config.email_regexp = /\A[^@]+@[^@]+\z/
config.reset_password_keys = [:email]
config.reset_password_within = 6.hours
config.sign_in_after_reset_password = true
config.sign_out_via = :get
# ==> OmniAuth
# Add a new OmniAuth provider. Check the wiki for more information on setting
# up on your models and hooks.
# config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo'
require "omniauth-google-oauth2" # Added Based on Response to Another Stackoverflow Issues - Did Not Help.
OMNIAUTH = YAML.load(File.read(File.expand_path('../../omniauth.yml', __FILE__))).deep_symbolize_keys
OMNIAUTH.each_value do |provider|
config.omniauth provider[:reference].to_sym, ENV[provider[:key_ref]], ENV[provider[:secret_ref]], { :scope => provider[:scope] }
end
end
加载的 omniauth.yml 文件如下所示:
facebook: { reference: "facebook",
name: "Facebook",
scope: "email, public_profile, user_birthday",
key_ref: "FACEBOOK_KEY",
secret_ref: "FACEBOOK_SECRET" }
twitter: { reference: "twitter",
name: "Twitter",
scope: "r_fullprofile, r_emailaddress",
key_ref: "TWITTER_KEY",
secret_ref: "TWITTER_SECRET" }
linkedin: { reference: "linkedin",
name: "LinkedIn",
scope: "r_basicprofile r_emailaddress",
key_ref: "LINKEDIN_KEY",
secret_ref: "LINKEDIN_SECRET" }
github: { reference: "github",
name: "GitHub",
scope: "user, public_repo",
key_ref: "GITHUB_KEY",
secret_ref: "GITHUB_SECRET" }
google: { reference: "google_oauth2",
name: "Google",
scope: "email, profile",
key_ref: "GOOGLE_KEY",
secret_ref: "GOOGLE_SECRET" }
最佳答案
我有完全相似的问题,facebook 工作,linkedin 和 google - 不。
经过一些挖掘/谷歌搜索后,我能够通过降级来解决我的问题:
gem 'omniauth-oauth2', '1.3.1'
所以我的 Gemfile 看起来像:
gem 'devise'
gem 'koala'
gem 'omniauth-oauth2', '1.3.1'
gem 'omniauth-facebook'
gem 'omniauth-google-oauth2'
gem 'omniauth-linkedin-oauth2'
关于ruby-on-rails - Facebook、Linkedin 和 Google 的 Oauth2 登录停止与 Devise 和 Omniauth 合作,但仍适用于 LinkedIn 和 Twitter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33352426/
创建我们的产品 LinkedIn 应用程序的开发人员通过 developer.linkedin.com 在他的个人 LinkedIn 帐户下添加了它。我们想将此应用程序移至我们公司的 LinkedIn
我正在尝试使用linkedin API 来显示我从第一天开始发布的个人资料的提要。帖子包括媒体、图像、视频等。我想知道是否有任何可用的 API,我可以在其中传递一些参数并获取我的linkedin 个人
我的应用程序从 LinkedIn 获取用户信息,但我找不到从 LinkedIn 获取某人性别的方法。 是否可以? LinkedIn 甚至有性别字段吗? 最佳答案 不。检查这个; https://dev
我很难在 LinkedIn 上获得分享。我正在尝试通过 LinkedIn API V2 发布 LinkedIn 共享,每次我发出发布请求时,我都会收到来自服务器的请求超时(状态 504)答复。这是我的
LinkedIn 的 API 返回以下值: [creationTimestamp] => 1407247548000 它看起来类似于 UNIX 时间戳,但末尾有三个“额外”零。这是什么格式,我该如何解
我正在尝试将从 ugcPosts API 获取组织帖子的现有代码迁移到 Posts API 的新版本调用(版本 202210),但我遇到了获取文章缩略图的问题。我从 Posts API 获得的响应不包
标题几乎说明了一切。有什么方法可以访问 LinkedIn 上大学页面的提要/更新吗? 在他们的开发者网站上唯一提到的大学是他们的 Alumni 小部件。 最佳答案 一句话:没有。 对于 API 的所有
您知道是否可以为 LinkedIn 平台构建应用程序? 最佳答案 是的,他们在 http://developer.linkedin.com/index.jspa 有 API ,允许访问个人资料、连接、
在 LinkedIn 的 API 使用条款 (https://developer.linkedin.com/legal/api-terms-of-use) 的第 2.3 节中,他们提到开发人员最多可以
作为公司页面的管理员,我如何通过 LinkedIn api 访问该公司的帖子 我被要求成为我公司资料的管理员。我创建了一个应用程序并将我的公司映射到该应用程序。但奇怪的是我刚刚获得了该应用程序的三个权
如何为我的网站提取或获取 LinkedIn 推荐?是否有任何插件或 PHP 脚本? 最佳答案 您可以使用 LinkedIn API 提取建议。 ,特别是 Profile API .粗略的步骤是: 创建
我正在为公司建立外部网站,我想展示我们公司的 LinkedIn 个人资料 最近更新 在我们的网站内。目前,当我访问我们公司的 LinkedIn 个人资料时,我可以看到这些最近的更新,这些更新也可供公共
articles API 的 LinkedIn 文档表明我可以通过做一个特定的文章的内容等 GET https://api.linkedin.com/v2/originalArticles/{orig
我想按日期范围获取视频分析。 我关注了视频分析 API, https://learn.microsoft.com/en-us/linkedin/marketing/integrations/commu
我想在我的网站中添加添加个人资料按钮以进行认证,以便用户可以将其添加到他们链接的个人资料中。 为此,我正在使用 任何人都可以帮助这里如何自动归档文件?意味着我想从我的一端发送证书名称、链接、许可证。
当图像通过 LinkedIn API v2 共享到个人资料(而非公司)时,它会显示为好像被裁剪过的一样: 但是,当我在 www.linkedin.com 上上传并分享同一张图片到我的个人资料时,它不显
当图像通过 LinkedIn API v2 共享到个人资料(而非公司)时,它会显示为好像被裁剪过的一样: 但是,当我在 www.linkedin.com 上上传并分享同一张图片到我的个人资料时,它不显
我正在使用 LinkedIn Owin Middleare,今天早上开始遇到问题,现在已将其复制到以下错误: POST https://www.linkedin.com/uas/oauth2/acce
我在我的网站上使用 LinkedIn 分享按钮,我使用相同的脚本将页面分享到 LinkedIn。但是,某些页面是成功的。一些页面失败。这是错误信息 Error while processing rou
有没有一种方法可以使用 LinkedIn API 提取公司洞察信息?我有一个高级帐户,并在 LinkedIn 开发者平台上创建了一个应用程序。我似乎找不到获取公司数据的方法,例如员 worker 数(
我是一名优秀的程序员,十分优秀!