Sha256: a65ef1e0339802bb502ed0798b4363edfb6328b0ae9b2e4afe9fe0934a1e4162

Contents?: true

Size: 616 Bytes

Versions: 2

Compression:

Stored size: 616 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 = Tokenable::Config.user_class.find_by(email: email)
          return nil unless user

          return nil unless user.authenticate(password)

          user
        end

        private

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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
tokenable-ruby-0.3.0 lib/tokenable/strategies/secure_password.rb
tokenable-ruby-0.2.0 lib/tokenable/strategies/secure_password.rb