Migración de usuarios de wordpress a dispositivo de rieles

2 minutos de lectura

Estoy en medio de mi migración de WordPress a Rails. En Rails usaré Devise, el único problema es la contraseña hash de los usuarios de wordpress existentes.

Si migro a todos los usuarios a Rails, ¿cómo puedo autenticarme con su contraseña anterior? ¿Es posible que los rieles generen el mismo hash que wordpress?

Sí. Necesitaras crear un encriptador personalizado para Idear.

WordPress puede codificar contraseñas de varias maneras, pero por defecto usa phpass. Hay una implementación de Ruby como una gema llamada phpass-ruby, que podría usar como base para su encriptador. Es posible que deba modificar esto para usar su sal WP. Alternativamente, echa un vistazo esta esencia.

Pero…

Si es posible, recomendaría importar los usuarios, luego enviando un correo electrónico a cada pidiéndoles que creen una nueva contraseña. Si sus contraseñas anteriores tienen hash MD5, esto será más seguro y podría decirse que podría ser más fácil de usar, ya que es posible que los usuarios (o el software) no asocien la contraseña anterior con el nuevo sitio.

avatar de usuario
Cloe

Esto permitirá la autenticación con la contraseña anterior. Si cambian su contraseña, usará el hash Devise BCrypt predeterminado en su lugar.

Gemfile

gem 'phpass-ruby' # check WordPress passwords

User.rb

require "phpass"
class User < ApplicationRecord

  # For Devise to use WordPress passwords. WordPress uses a portable PHPass of MD5 plus a salt.
  def valid_password?(password)
    return false if encrypted_password.blank?
    begin
      return true if super
    rescue BCrypt::Errors::InvalidHash => e
      logger.info "Invalid BCrypt password for #{email}. Fallback to PHPass."
    end
    # Fallback to PHPass
    phpass = Phpass.new(8)
    return phpass.check(password, encrypted_password)
  end

  • Esto parece que ya no funciona. (¿quizás la versión de wordpress importa?)

    – jdar

    15 oct 2019 a las 0:30

¿Ha sido útil esta solución?