ruby-on-rails – OAuth 2.0的WordPress策略
我正在开发一个应用程序,允许用户使用Devise和Omniauth进行身份验证,然后将他的社交网络帐户连接到应用程序.我想添加Wordpress集成(他们的网站声明他们支持OAuth 2.0身份验证和REST API访问).
不幸的是,这个提供商没有Omniauth策略.我调查了一些其他的宝石并决定自己编写 – 它似乎并不那么复杂. The source code can be found here. 我添加了所有必需的信息(根据WordPress docs),然后我注册了应用程序ID和密码.我在这里遇到了我的第一个问题 – WordPress要求一个实时的公共域作为重定向URI.我不想使用一个 – 我想先在开发模式下测试,所以localhost对我来说很好.我输入了一个虚拟地址,然后将其更改回localhost(出乎意料!他们没有在更新时验证它,只是在创建时). 我已将凭据添加到初始化程序(config / initializers / devise.rb): config.omniauth :wordpress,"my_app_id","my_app_secret" 它似乎工作 – 我得到了我期望的身份验证对话框,它提到了我的应用程序.但当我点击“授权”并重定向到我的应用程序时,我收到一个错误,说明无效的凭据. 我已经检查了凭据,但它们是正确的(没有错别字,正确的顺序).我重置了应用秘密 – 没有运气.我创建了另外两个应用程序,但仍然没有. 我已经没有想法了.什么可能导致这样的错误?是否有可能是因为redirect_uri中的本地地址? 解决方法
我怀疑这很容易错过,事实确实如此. WordPress’服务器使用JSON字符串进行响应,但响应未被解析为一个.因此,Omniauth gem无法在其中找到访问令牌,并且无法提高无效凭据错误.设置正确的内容类型就像一个魅力.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |