【发布时间】:2014-10-27 22:42:48
【问题描述】:
我一直在尝试让 Ruby on Rails 4.1 使用 gem omniauth 和 gem restforce 按照此指令链接 here 与我们的销售人员实例对话。
一切似乎都很好,我已经启动并运行了,带有一个超链接,可以将我带到 salesforce 登录,并且似乎可以正确返回回调。但是,当我收到错误消息时:
OAuth2::ErrorMissing_OAuth_Token
这让我非常困惑和迷惑,我的 oauth 令牌肯定应该由回调提供?
我的 client_id 和 client_secret 存储在应用程序中,它们似乎可以正确加载。通过omniauth添加我的salesforce登录名和密码应该可以提供它需要的一切,对吧?我在omniauth gem docs或restforce gem中看不到任何其他地方可以粘贴oauth令牌......即使那样我也不确定我从哪里得到它。
我了解到最近 gem omniauth 出现了一些身份验证失败,并且当前有一个发布新版本的问题请求。如果我指定我的 gem 直接从 github 中提取。我收到了一个关于here 的类似错误。
任何人都可以提供任何建议:
-
我应该期望丢失的
Auth_Token来自哪里(我真的不知道我应该在我的应用程序中提供它还是这就是销售人员返回的内容如何最好地进行调试? (我曾考虑过使用
debugger,但由于它在我的 rails 应用程序之外执行 ping 操作,我不确定这会有多大帮助。正确设置的正确方法是什么!
任何帮助将不胜感激!
【问题讨论】:
-
嗨,教程作者在这里 :) 。有些人在启动 Restforce 时手动修复了此设置
:instance_url(naX.salesforce.com)。你试过了吗? -
@geekymartian !你是你帮助我走到这一步的传奇。不幸的是,问题仍然存在。查看您的代码,我点击了“通过 salesforce 登录”链接,进入了身份验证页面,登录并让回调似乎成功进行,此时出现了错误。我想如果我此时进入
rails console,我可以尝试操作current_user对象,但我得到NameError: undefined local variable or methodcurrent_user' for main:Object`... 真的很难过 -
仔细查看webrick日志,事情的经过是这样的:
(salesforce) Request phase initiated.Started GET "/auth/salesforce/callback?display=page&code=***...%**%**&state=***..." for 78.151.151.129 at 2014-10-31 12:02:14 +0000(salesforce) Callback phase initiated.(salesforce) Authentication failure! invalid_credentials: OAuth2::Error, Missing_OAuth_Token -
我已经更新了帖子以使用最新版本的 Rails,您可以下载示例 github.com/bfagundez/rails-salesforce-oauth-template。
-
非常感谢马丁,我将尝试通过将内容加载为环境变量一段时间来使我的身份验证正常工作。我觉得我的核心问题是我存储详细信息的位置很混乱,我已经看到 databasedotcom-oauth2 gem 提供了使用 .yml 文件、环境变量的潜力,但我认为这里的所有内容都是通过将内容加载到初始化程序...无论如何,感谢您的更新。我会在那里检查并报告!再次感谢您在这里回复!
标签: ruby-on-rails api gem oauth-2.0 salesforce