【问题标题】:Twitter uid is null when using Omniauth (Rails)使用 Omniauth (Rails) 时 Twitter uid 为空
【发布时间】:2012-08-27 21:56:39
【问题描述】:

我正在使用 Omni auth 在我的 rails 应用程序中验证 twitter 帐户。

之前我可以获取 uid 参数,但现在返回 null 如下所示

{"provider":"twitter","uid":null,

"info":

{
"nickname":"boobalanv",
"name":"Boobalan",
"location":"",
"image":"<image url>",
"description":"",
"urls":
{
"Website":null,
"Twitter":"http://twitter.com/boobalanv"}},
"credentials":

我正在本地主机上对此进行测试。

我做错了什么还是 twitter 已停止提供用户 ID?

更新:

实际上我在initializers/omniauth.rb 中添加了用于授权路径的客户端选项,如下所示 (这样做只有授权将包括访问直接消息的权限)

provider :twitter, Rails.application.config.consumer_key , Rails.application.config.consumer_secret , authorize_params: {force_login: 'true'}, client_options: {authorize_path: '/oauth/authorize'}

只有在这样做之后,我才遇到 uid = null 的问题,当我删除此选项'client_options: {authorize_path:'/oauth/authorize'}' 时它工作正常..

这个问题有什么解决办法吗?

【问题讨论】:

    标签: ruby-on-rails twitter omniauth


    【解决方案1】:

    找到了答案。

    authorize_path 设置为 "/oauth/authorize" 时,uid 字段为空。 相反,我们可以通过以下方式获取 Twitter 用户 ID

    auth['extra']['raw_info']['id']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-26
      • 2012-02-15
      • 2013-09-30
      • 2022-07-28
      • 2018-02-07
      • 2014-11-10
      • 2014-08-14
      • 2013-09-04
      相关资源
      最近更新 更多