def generate_authentication_token loop do token = Devise.friendly_token hashed_token = BCrypt::Password.create(token) update_attribute(:token_id, Devise.friendly_token) final_token = "#{token_id}-#{token}" break { token: final_token, hashed_token: hashed_token } unless User.where(authentication_token: hashed_token).first end end