Class: StandardId::DeviceSession

Inherits:
Session show all
Defined in:
app/models/standard_id/device_session.rb

Instance Attribute Summary

Attributes inherited from Session

#token

Instance Method Summary collapse

Methods inherited from Session

#active?, #expired?, #revoke!, #revoked?

Instance Method Details

#device_infoObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/models/standard_id/device_session.rb', line 6

def device_info
  return {} if device_agent.blank?

  # Simple device agent parsing
  case device_agent
  when /iOS/i
    { platform: "iOS", type: "mobile" }
  when /Android/i
    { platform: "Android", type: "mobile" }
  when /Windows/i
    { platform: "Windows", type: "desktop" }
  when /Mac/i
    { platform: "macOS", type: "desktop" }
  when /Linux/i
    { platform: "Linux", type: "desktop" }
  else
    { platform: "Unknown", type: "unknown" }
  end
end

#display_nameObject



26
27
28
# File 'app/models/standard_id/device_session.rb', line 26

def display_name
  "#{device_info[:platform]} Device Session"
end

#refresh!Object



30
31
32
# File 'app/models/standard_id/device_session.rb', line 30

def refresh!
  update!(last_refreshed_at: Time.current)
end

#stale?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'app/models/standard_id/device_session.rb', line 34

def stale?
  last_refreshed_at.nil? || last_refreshed_at < 1.hour.ago
end