के लिए डेविस ओमनीथ "एन्क्रिप्टेड_पासवर्ड न्यूल नहीं हो सकता है" मैं फेसबुक के साथ अपने ऐप में साइन इन करने के लिए ओमनीथ के साथ डेविस का उपयोग कर रहा हूं। मैंने इसे चलाने और चलाने के लिए रेलस्कास्ट ट्यूटोरियल का उपयोग किया।नए उपयोगकर्ता
यदि कोई उपयोगकर्ता पहले से ही फेसबुक के माध्यम से प्रमाणीकरण करने वाली मेरी साइट का सदस्य है तो ठीक काम करता है। फेसबुक के साथ एक नए उपयोगकर्ता को प्रमाणित करते समय समस्या आती है। जब यह मेरे उपयोगकर्ता मॉडल के लिए एक नया उपयोगकर्ता बनाने के लिए जाता है तो मुझे "users.encrypted_password न्यूल नहीं हो सकता" त्रुटि मिलती है। मैं यह नहीं समझ सकता कि फेसबुक जानकारी से उपयोगकर्ता मॉडल में पासवर्ड कैसे पारित किया जाए। , अग्रिम धन्यवाद
authentations_controller.rb
class AuthenticationsController < ApplicationController
def index
@authentications = current_user.authentications if current_user
end
def create
omniauth = request.env["omniauth.auth"]
authentication = Authentication.find_by_provider_and_uid(omniauth['provider'], omniauth['uid'])
if authentication
flash[:notice] = "Signed in successfully."
sign_in_and_redirect(:user, authentication.user)
elsif current_user
current_user.authentications.create!(:provider => omniauth['provider'], :uid => omniauth['uid'])
flash[:notice] = "Authentication successful."
redirect_to authentications_url
else
user = User.new
user.apply_omniauth(omniauth)
if user.save
flash[:notice] = "Signed in successfully."
sign_in_and_redirect(:user, user)
else
session[:omniauth] = omniauth.except('extra')
redirect_to new_user_registration_url
end
end
end
user.rb
def apply_omniauth(omniauth)
self.email = omniauth['user_info']['email'] if email.blank?
authentications.build(:provider => omniauth['provider'], :uid => omniauth['uid'])
end
def password_required?
(authentications.empty? || !password.blank?) && super
end
किसी भी मदद की बहुत अच्छा होगा:
यह है कि मैं क्या है!
धन्यवाद एक बहुत है, मैं पहले लेकिन जाहिरा तौर पर गलत तरीके से इस लागू करने के लिए कोशिश की थी। सब ठीक काम कर रहे हैं। उम्मीद है कि लिंक किसी और की मदद कर सकता है। – looloobs
इससे मुझे google_oauth2 –
के साथ भी मदद मिली और क्या उपयोगकर्ता जान सकता है कि पासवर्ड क्या है? –