class Virgil::Jwt::JwtBodyContent

Represents content of [Jwt]

Constants

IDENTITY_PREFIX
SUBJECT_PREFIX

Attributes

additional_data[R]

Jwt additional data. @return [Hash]

app_id[R]

Jwt application id. @return [String]

expires_at[R]

When Jwt will expire. @return [Time]

identity[R]

Jwt identity. @return [String]

issued_at[R]

When Jwt was issued. @return [Time]

issuer[R]

Jwt issuer. @return [String]

subject[R]

Jwt subject. @return [String]

Public Class Methods

new(app_id:, identity:, issued_at:, expires_at:, data:) click to toggle source

Initializes a new instance of the class @param app_id [String] Application ID. Take it from {dashboard.virgilsecurity.com} @param identity [String] identity (must be equal to RawSignedModel identity when publishing card) @param issued_at [Time] issued data @param expires_at [Time] expiration date @param data [Hash] hash with additional data

# File lib/virgil/jwt/jwt_body_content.rb, line 76
def initialize(app_id:, identity:, issued_at:, expires_at:, data:)
  @app_id = app_id
  @identity = identity
  @issued_at = issued_at
  @expires_at = expires_at
  @additional_data = data
  @issuer = "#{SUBJECT_PREFIX}#{@app_id}"
  @subject = "#{IDENTITY_PREFIX}#{@identity}"
end
restore_from_json(str_json) click to toggle source

Restore body content from json @return [JwtBodyContent]

# File lib/virgil/jwt/jwt_body_content.rb, line 100
def self.restore_from_json(str_json)
  model = JSON.parse(str_json)
  new(app_id: model['iss'].gsub(JwtBodyContent::SUBJECT_PREFIX, ''),
      identity: model['sub'].gsub(JwtBodyContent::IDENTITY_PREFIX, ''),
      issued_at: Time.at(model['iat']).utc,
      expires_at: Time.at(model['exp']).utc,
      data: model['ada'])
end

Public Instance Methods

to_json() click to toggle source

Json representation of body content @return [String]

# File lib/virgil/jwt/jwt_body_content.rb, line 88
def to_json
  model = {
    'iss': issuer,
    'sub': subject,
    'iat': issued_at.to_i,
    'exp': expires_at.to_i,
    'ada': additional_data}
  model.to_json
end