HI! Я успешно создал способ генерации пароля с использованием безопасного пароля с помощью has_secure_password. Я смог сгенерировать password_digest:
//this is the data in my mongo db
/* 1 */
{
"_id" : ObjectId("5e4b43d55c260c07b48cbf38"),
"username" : "admin",
"password_digest" : "$2a$12$93GElGpXK2AcfRvhNsH23O2mPlTiV.sHLrtuesFO5HSllxDqEE796"
}
/* 2 */
{
"_id" : ObjectId("5e4b46c95c260c07b48cbf3c"),
"username" : "jenuel",
"password_digest" : "$2a$12$6LPYNpAzCAT/k8HHFVJT7..E0GO2iuBJolY0TPHbklz0J58/OLkRm"
}
это моя модель в рельсах
class User
include Mongoid::Document
include ActiveModel::SecurePassword
include ActiveModel::Validations
field :username, type: String
field :password_digest, type: String
has_secure_password
validates_confirmation_of :password
end
Я смог создать это пользователи выше, использующие эту функцию внутри моего контроллера:
def create
if check_username(params[:username]) == false
@user = User.new(user_params)
if @user.save
render json: @user, status: :created, location: @user
else
render json: @user.errors, status: :unprocessable_entity
end
else
render json: { error: "Username Already Exist" }, status: :unprocessable_entity
end
end
И это моя функция входа в систему:
def login
user = User.where(username: params[:username])
if user.exists? && user.authenticate(params[:password])
render json: { message: "Logged In!" }, status: :ok
else
render json: { error: "unauthorized" }, status: :unauthorized
end
end
Теперь проблема в функции входа в систему, когда я использую аутентификацию их ошибка:
Пожалуйста, помогите. Другой способ сделать это - аутентифицировать пароль с помощью Rails для MongoDB / mongoloid. Большое вам спасибо:)