module AppRail::Airtable::Authenticatable::ClassMethods
Public Instance Methods
create(email:, password:)
click to toggle source
# File lib/app_rail/airtable/authenticatable.rb, line 15 def create(email:, password:) user = new("Email" => email, "Password Hash" => password_hash(password), "Access Token" => next_access_token) user.create user end
create_session_as_json(email:, password:)
click to toggle source
# File lib/app_rail/airtable/authenticatable.rb, line 21 def create_session_as_json(email:, password:) user = find_by_email_and_password(email, password) return nil unless user user["Access Token"] = next_access_token user.save user&.oauth_session end
find_by_access_token(access_token)
click to toggle source
# File lib/app_rail/airtable/authenticatable.rb, line 35 def find_by_access_token(access_token) all(filter: "{Access Token} = \"#{access_token}\"").first end
find_by_email_and_password(email, password)
click to toggle source
# File lib/app_rail/airtable/authenticatable.rb, line 30 def find_by_email_and_password(email, password) user = all(filter: "{Email} = \"#{email}\"").first user&.valid_password?(password) ? user : nil end
next_access_token()
click to toggle source
# File lib/app_rail/airtable/authenticatable.rb, line 43 def next_access_token SecureRandom.hex end
password_hash(password)
click to toggle source
# File lib/app_rail/airtable/authenticatable.rb, line 39 def password_hash(password) BCrypt::Password.create(password) end