我正在开发一个具有linkedin登录按钮的应用。一旦用户使用他们的用户名和密码登录。我想在主页上显示他们的信息。
目前我正在使用'omniauth','omniauth-linkedin-oauth2'来验证用户身份。 在我之前处理这个问题的人完成了身份验证过程,但我无法理解如何显示用户信息。认证是通过遵循RailsCast#235& #236 Omniauth第1部分和第2部分。
这是omniauth.rb文件。
Rails.application.config.middleware.use OmniAuth::Builder do
provider :linkedin, 'LINKEDIN_KEY', 'LINKEDIN_SECRET', :scope => 'r_fullprofile r_emailaddress r_network', :fields => ['id', 'email-address', 'first-name', 'last-name']
end
我想显示omniauth.rb文件中的所有字段。 我理解这是一个非常愚蠢的问题,但我是Ruby on Rails的新手,所以如果有人可以指导我完成整个过程,我会非常感激。
答案 0 :(得分:2)
基于第2部分中的身份验证控制器 您可以从omniauth哈希中获取字段:
omniauth = request.env["omniauth.auth"]
first_name = omniauth[:info][:first_name]
last_name = omniauth[:info][:last_name]
summary = omniauth[:extra][:raw_info][:summary]
headline = omniauth[:extra][:raw_info][:headline]
image = omniauth[:info][:image]
email = omniauth[:info][:email]
token = omniauth[:credentials][:token]
secret = omniauth[:credentials][:secret]
profile_url = omniauth[:info][:urls][:public_profile]
这些是您需要的身份验证哈希的基本信息,如果您需要更多数据,您可以使用以下gem(使用用户的令牌):
gem 'linkedin-oauth2', '~> 0.1.1'