Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Can';无法从Linkedin获取身份验证信息_Ruby On Rails_Ruby_Linkedin - Fatal编程技术网

Ruby on rails Can';无法从Linkedin获取身份验证信息

Ruby on rails Can';无法从Linkedin获取身份验证信息,ruby-on-rails,ruby,linkedin,Ruby On Rails,Ruby,Linkedin,我正在使用LinkedIn进行身份验证。我不知道为什么,但LinkedIn不允许突然登录。我可以允许LinkedIn应用,但无法获取身份验证信息 {"provider"=>"linkedin", "uid"=>nil, "info"=> {"name"=>nil, "email"=>nil, "nickname"=>nil, "first_name"=>nil, "last_name"=>nil, "location"=&g

我正在使用LinkedIn进行身份验证。我不知道为什么,但LinkedIn不允许突然登录。我可以允许LinkedIn应用,但无法获取身份验证信息

{"provider"=>"linkedin",
"uid"=>nil,
"info"=>
  {"name"=>nil,
  "email"=>nil,
  "nickname"=>nil,
  "first_name"=>nil,
  "last_name"=>nil,
  "location"=>nil,
  "description"=>nil,
  "image"=>nil,
  "phone"=>nil,
  "headline"=>nil,
  "industry"=>nil,
  "urls"=>{"public_profile"=>nil}},
"credentials"=>{"token"=>"facdxxx-xxx-xxxx-xxxx-xxxxxxxxx", "secret"=>"2xxxxx-xxxx-xxxx-xxxx-xxxxxxx"}}
omniauth_controller.rb

我使用
omniauth-linkedin

当我在二月份注册时,我有如下许可

但目前只有三个


我如何才能在LinkedIn上添加权限?

有很多事情可以做到,但有一件事你可以试试;配置应用程序时,您可能没有请求正确的访问权限。根据:

在OAuth 2.0指南的步骤2中请求授权代码时,请确保请求r_liteprofile和/或r_emailaddress作用域


根据,您可以通过请求或通过开发者门户设置这些设置

谢谢您的评论。config.omniauth:linkedin,Rails.application.credentials[Rails.env.to_-sym][:linkedin][:client\u-id],Rails.application.credentials[Rails.env.to_-sym][:linkedin][:client\u-secret],scope:'r\u-liteprofile'我已经添加了作用域,但不起作用。您是否使用omniauth/linkedin gem在designe中启用omniauth??如果是的话,哪一个?谢谢@JayDorsey我已经添加了gemfile信息。它看起来已经有4年多没有更新了。自述文件声明“此gem包含适用于OmniAuth 1.0的LinkedIn策略”,但microsoft网站上的链接声明“LinkedIn API使用OAuth 2.0进行用户授权和API身份验证。”鉴于gem的年龄,我认为这两者不兼容,我可能会调查另一个gem(可能)如果你浏览一下,你还会发现linkedin从去年开始就开始反对至少一些oauth 1.0字段,谢谢你的帮助。我将尝试使用它:)
class OmniauthCallbacksController < Devise::OmniauthCallbacksController
    def linkedin
        @user = User.from_omniauth(request.env["omniauth.auth"].except("extra"))

        if @user.persisted?
            sign_in_and_redirect @user, event: :authentication
        else
            session["devise.user_attributes"] = @user.attributes
            redirect_to new_user_registration_url
        end
    end
end
gem 'omniauth-linkedin'