class Ably::Models::TokenDetails
Contains an Ably
Token and its associated metadata.
Constants
- TOKEN_EXPIRY_BUFFER
-
Buffer in seconds before a token is considered unusable For example, if buffer is 10s, the token can no longer be used for new requests 9s before it expires
Public Class Methods
Source
# File lib/ably/models/token_details.rb, line 34 def initialize(attributes = {}) @hash_object = IdiomaticRubyWrapper(attributes.clone) %w(issued expires).map(&:to_sym).each do |time_attribute| if self.attributes[time_attribute].kind_of?(Time) self.attributes[time_attribute] = (self.attributes[time_attribute].to_f * 1000).round end end self.attributes.freeze end
@param attributes @option attributes [String] :token token used to authenticate requests @option attributes [String] :key_name API key name used to create this token @option attributes [Time,Integer] :issued Time the token was issued as Time or Integer in milliseconds @option attributes [Time,Integer] :expires Time the token expires as Time or Integer in milliseconds @option attributes [String] :capability JSON stringified capabilities assigned to this token @option attributes [String] :client_id client ID assigned to this token
Public Instance Methods
Source
# File lib/ably/models/token_details.rb, line 126 def attributes @hash_object end
@return [Hash] Access the token details Hash object ruby’fied to use symbolized keys
Source
# File lib/ably/models/token_details.rb, line 80 def capability if attributes.has_key?(:capability) capability_val = attributes.fetch(:capability) case capability_val when Hash capability_val when Ably::Models::IdiomaticRubyWrapper capability_val.as_json else JSON.parse(attributes.fetch(:capability)) end end end
The capabilities associated with this Ably
Token. The capabilities value is a JSON-encoded representation of the resource paths and associated operations. Read more about capabilities in the capabilities docs. @spec TD5 @return [Hash] Capabilities assigned to this token
Source
# File lib/ably/models/token_details.rb, line 99 def client_id attributes[:client_id] end
The client ID, if any, bound to this Ably
Token. If a client ID is included, then the Ably
Token authenticates its bearer as that client ID, and the Ably
Token may only be used to perform operations on behalf of that client ID. The client is then considered to be an identified client. @spec TD6 @return [String] Optional client ID assigned to this token
Source
# File lib/ably/models/token_details.rb, line 110 def expired?(attributes = {}) return false if !expires from = attributes[:from] || Time.now expires < from + TOKEN_EXPIRY_BUFFER end
Returns true if token is expired or about to expire For tokens that have not got an explicit expires attribute expired? will always return true
@param attributes [Hash] @option attributes [Time] :from Sets a current time from which token expires
@return [Boolean]
Source
# File lib/ably/models/token_details.rb, line 72 def expires as_time_from_epoch(attributes[:expires], granularity: :ms, allow_nil: :true) end
The timestamp at which this token expires as milliseconds since the Unix epoch. @spec TD3 @return [Time] Time the token expires
Source
# File lib/ably/models/token_details.rb, line 120 def from_token_string? attributes.keys == [:token] end
True if the TokenDetails
was created from an opaque string i.e. no metadata exists for this token @return [Boolean] @api private
Source
# File lib/ably/models/token_details.rb, line 65 def issued as_time_from_epoch(attributes[:issued], granularity: :ms, allow_nil: :true) end
The timestamp at which this token was issued as milliseconds since the Unix epoch. @spec TD4 @return [Time] Time the token was issued
Source
# File lib/ably/models/token_details.rb, line 58 def key_name attributes[:key_name] end
@return [String] API key name used to create this token. An API key is made up of an API key name and secret delimited by a :
Source
# File lib/ably/models/token_details.rb, line 130 def to_s "<TokenDetails token=#{token} client_id=#{client_id} key_name=#{key_name} issued=#{issued} expires=#{expires} capability=#{capability} expired?=#{expired?}>" end