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