Sha256: a2b351d926e88f0d74a999bbd905200a9e5b29377a75a0d6eb20e4cc47639b95

Contents?: true

Size: 608 Bytes

Versions: 1

Compression:

Stored size: 608 Bytes

Contents

# frozen_string_literal: true

module Tokenable
  module Strategies
    module SecurePassword
      extend ActiveSupport::Concern

      class_methods do
        def from_tokenable_params(params)
          email, password = parse_auth_params(params)

          user = User.find_by(email: email)
          return nil unless user

          return nil unless user.authenticate(password)

          user
        end

        private

        def parse_auth_params(params)
          [
            params.require(:email),
            params.require(:password),
          ]
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tokenable-ruby-0.1.0 lib/tokenable/strategies/secure_password.rb