加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – OAuth 2.0的WordPress策略

发布时间:2020-12-17 02:13:11 所属栏目:百科 来源:网络整理
导读:我正在开发一个应用程序,允许用户使用Devise和Omniauth进行身份验证,然后将他的社交网络帐户连接到应用程序.我想添加Wordpress集成(他们的网站声明他们支持OAuth 2.0身份验证和REST API访问). 不幸的是,这个提供商没有Omniauth策略.我调查了一些其他的宝石并
我正在开发一个应用程序,允许用户使用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无法在其中找到访问令牌,并且无法提高无效凭据错误.设置正确的内容类型就像一个魅力.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读