Tôi đang cố hoàn thành một dự án. Tôi đang làm việc với các mô hình người dùng. Khi tôi đăng ký mọi thứ có vẻ ổn. Nhưng khi tôi cố gắng để đăng nhập cùng một thành viên tôi nhận được lỗi này."BCrypt :: Errors :: InvalidHash" khi cố gắng đăng nhập
Chúng tôi rất tiếc, nhưng đã xảy ra sự cố. bản ghi Heroku tập tin cho thấy lỗi như:
BCrypt::Errors::InvalidHash (invalid hash):
app/controllers/sessions_controller.rb:8:in `create'
tôi * sessions_controller * là:
class SessionsController < ApplicationController
def new
end
def create
user = User.find_by_email(params[:session][:email])
if user && user.authenticate(params[:session][:password])
sign_in user
redirect_to user
else
flash.now[:error] = 'Invalid email/password combination'
render 'new'
end
end
def destroy
sign_out
redirect_to root_path
end
end
và sử dụng mô hình là:
class User < ActiveRecord::Base
attr_accessible :email, :name, :nickname,:password, :password_confirmation
has_secure_password
before_save { |user| user.email = email.downcase }
before_save { |user| user.nickname = nickname.downcase }
before_save :create_remember_token
....validations......
private
def create_remember_token
self.remember_token = SecureRandom.urlsafe_base64
end
end
đây là của tôi session.helper
module SessionsHelper
def sign_in(user)
cookies.permanent[:remember_token] = user.remember_token
self.current_user = user
end
def signed_in?
!current_user.nil?
end
def current_user=(user)
@current_user = user
end
def current_user
@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end
def sign_out
self.current_user = nil
cookies.delete(:remember_token)
end
end
Tôi đã thử heroku rake db: migrate, heroku restart .. không có thay đổi.
bạn có thể hiển thị cho chúng tôi phương thức 'sign_in' của bạn không? –
Đã chỉnh sửa thông điệp đầu tiên của tôi với session.helper trong thư.there là phương thức sign_in – ytsejam
Chỉ trong trường hợp, bạn đã thực hiện 'bundle install' với' gem 'bcrypt-ruby', '3.0.1'' trong 'Gemfile' của bạn ? –