0
我正在使用ROR的示例應用程序。我已經使用has_secure_password在用戶註冊時存儲用戶的密碼。Ruby on rails Facebook登錄has_secure_password
現在我正在使用Omniauth用於facebook登錄。我讀了password_digest不能留空。所以現在我想以與has_secure_password相同的加密格式存儲密碼。我怎樣才能做到這一點?
現在我將密碼硬編碼爲「test」。
sessions_controller.rb
def facebook_login
auth_hash = request.env['omniauth.auth']
email=auth_hash.info.email
@user_email=User.find_by_email(email)
if @user_email
render @user_email
else
@user = User.from_omniauth(env["omniauth.auth"])
redirect_to root_url
end
end
user.rb
def self.from_omniauth(auth)
where(auth.slice(:outh_provider, :fb_id)).first_or_initialize.tap do |user|
user.outh_provider = auth.provider
user.fb_id = auth.uid
user.name=auth.info.name
user.email=auth.info.email
user.password_digest="test"
user.fb_username = auth.info.name
user.oauth_token = auth.credentials.token
user.oauth_expires_at = Time.at(auth.credentials.expires_at)
user.save!(validate: false)
end
end
謝謝!有效 :) –