class AgoraDynamicKey::AccessToken

Constants

ONE_DAY
SEED
VERSION

Attributes

app_certificate[RW]
app_id[RW]
channel_name[RW]
expired_ts[RW]
privilege_expired_ts[RW]
privileges[RW]
salt[RW]
uid[RW]

Public Class Methods

generate!(payload={}) click to toggle source
# File lib/dynamic_key/access_token.rb, line 49
def self.generate! payload={}, &block
  token = AccessToken.new payload
  block.call token
  token.build!
end
new(args={}) click to toggle source
# File lib/dynamic_key/access_token.rb, line 20
def initialize args={}
  @app_id = args[:app_id]
  @channel_name = args.fetch(:channel_name, "")
  @app_certificate = args[:app_certificate]
  @uid = "#{args.fetch(:uid, "")}"
  @privileges = {}
  @privilege_expired_ts = args[:privilege_expired_ts]
  @salt = SecureRandom.rand(SEED)
  @expired_ts = Time.now.to_i + ONE_DAY
end

Public Instance Methods

add_privilege(privilege, ts) click to toggle source
# File lib/dynamic_key/access_token.rb, line 31
def add_privilege privilege, ts
  privileges[privilege] = ts
end
Also aliased as: grant
build() click to toggle source
# File lib/dynamic_key/access_token.rb, line 37
def build
  Sign.encode self
end
build!() click to toggle source
# File lib/dynamic_key/access_token.rb, line 41
def build!
  Sign.encode! self
end
from_string(token) click to toggle source
# File lib/dynamic_key/access_token.rb, line 45
def from_string token
  Sign.decode token
end
grant(privilege, ts)
Alias for: add_privilege