56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/vonage/video.rb', line 56
def generate_client_token(session_id:, scope: 'session.connect', role: 'publisher', **params)
valid_roles = %w[publisher subscriber moderator publisheronly]
raise ArgumentError, "Invalid role: #{role}" unless valid_roles.include?(role)
claims = {
application_id: @config.application_id,
scope: scope,
session_id: session_id,
role: role,
initial_layout_class_list: '',
sub: 'video',
acl: {
paths: {'/session/**' => {}}
}
}
claims[:data] = params[:data] if params[:data]
claims[:initial_layout_class_list] = params[:initial_layout_class_list].join(' ') if params[:initial_layout_class_list]
claims[:exp] = params[:expire_time].to_i if params[:expire_time]
JWT.generate(claims, @config.private_key)
end
|