I am using devise and omniauth for authentication. Wherever i click on
the facebook login button i get this warning msg.
warning: peer certificate won’t be verified in this SSL session
But now i get this error msg
OpenSSL::SSL::SSLError SSL_connect returned=1 errno=0 state=SSLv3 read
server certificate B: certificate verify failed
What am i doing wrong?
Routes.rb
get “/auth/:provider/callback” => “authentications#create”
In my config/initializers/omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
provider :twitter, ‘xxxx’, ‘xxxx’
provider :facebook, ‘appid’, ‘appsecret’,
{:scope=>‘publish_stream,email’}
end
In my authentications controller
def create
omniauth = request.env["omniauth.auth"]
#search if user has been authenticated and application has been
authorised
authenticate =
Authentication.find_by_provider_and_uid(params[‘provider’],
omniauth[‘uid’])
#if user has signed in with that provider before, sign user in and
show the requested page
if authenticate
sign_in_and_redirect(:user, authenticate.user)
flash[:notice] = “Authentication successful!!”
#create new user
else
user = User.new
user.apply_omniauth(omniauth)
case omniauth['provider']
when 'facebook'
if user.save
user.profile = Profile.new
user.profile.picture_url =
“https://graph.facebook.com/“+omniauth[‘uid’]+”/picture”
user.profile.location =
omniauth[‘extra’][‘user_hash’][‘location’][‘name’]
user.profile.gender = omniauth[‘extra’][‘user_hash’][‘gender’]
#save users profile
if user.profile.save
flash[:notice] = "Signed in with "+omniauth['provider']
#sign user in
sign_in_and_redirect(:user, user)
end
else
redirect_to root_url, :notice => "Authentication failed, please try
again!"
end
when 'twitter'
session[:omniauth] = omniauth.except('extra')
redirect_to "#{root_url}confirm-email"
end
end #close of if statement
end #close of method
In models/user
def apply_omniauth(omniauth)
case omniauth['provider']
when 'facebook'
self.email = omniauth[‘user_info’][‘email’]
end
self.username = omniauth['user_info']['nickname'] if username.blank?
self.name = omniauth['user_info']['name'] if name.blank?
authentications.build(:provider=>omniauth['provider'],
:uid=>omniauth[‘uid’], :token =>(omniauth[‘credentials’][‘token’] rescue
nil))
end
Please is there anything am doing wrong. Because it was working
perfectly locally and even on my heroku host until it started giving me
this error message