def test_events_with_filters(self): token = CapabilityToken("AC123", "XXXXX") token.allow_event_stream(foobar="hey") payload = token.payload() event_uri = "scope:stream:subscribe?params=foobar%3Dhey&path=%2F2010-04-01%2FEvents" assert_equal(payload["scope"], event_uri)
def test_outbound_permissions_params(self): token = CapabilityToken("AC123", "XXXXX") token.allow_client_outgoing("AP123", foobar=3) payload = token.payload() eurl = "scope:client:outgoing?appParams=foobar%3D3&appSid=AP123" assert_equal(payload["scope"], eurl)
def test_events(self): token = CapabilityToken("AC123", "XXXXX") token.allow_event_stream() payload = token.payload() event_uri = "scope:stream:subscribe?path=%2F2010-04-01%2FEvents" assert_equal(payload["scope"], event_uri)
def test_inbound_permissions(self): token = CapabilityToken("AC123", "XXXXX") token.allow_client_incoming("andy") payload = token.payload() eurl = "scope:client:incoming?clientName=andy" assert_equal(len(payload), 1) assert_equal(payload['scope'], eurl)
def test_outbound_permissions(self): token = CapabilityToken("AC123", "XXXXX") token.allow_client_outgoing("AP123") payload = token.payload() eurl = "scope:client:outgoing?appSid=AP123" assert_equal(len(payload), 1) self.assertIn(eurl, payload['scope'])
def get_capability_token(): """Respond to incoming requests.""" # Find these values at twilio.com/console account_sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' auth_token = 'your_auth_token' capability = CapabilityToken(account_sid, auth_token) capability.allow_client_incoming("jenny") token = capability.generate() return Response(token, mimetype='application/jwt')
def test_decode(self): token = CapabilityToken("AC123", "XXXXX") token.allow_client_outgoing("AP123", foobar=3) token.allow_client_incoming("andy") token.allow_event_stream() outgoing_uri = "scope:client:outgoing?appParams=foobar%3D3&appSid=AP123&clientName=andy" incoming_uri = "scope:client:incoming?clientName=andy" event_uri = "scope:stream:subscribe?path=%2F2010-04-01%2FEvents" result = jwt.decode(token.generate(), "XXXXX") scope = result["scope"].split(" ") self.assertIn(outgoing_uri, scope) self.assertIn(incoming_uri, scope) self.assertIn(event_uri, scope)
def get_capability_token(): """Respond to incoming requests.""" # Find these values at twilio.com/console account_sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' auth_token = 'your_auth_token' capability = CapabilityToken(account_sid, auth_token) # Twilio Application Sid application_sid = 'APXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' capability.allow_client_outgoing(application_sid) capability.allow_client_incoming(request.form["ClientName"]) token = capability.generate() return Response(token, mimetype='application/jwt')
def test_no_permissions(self): token = CapabilityToken("AC123", "XXXXX") payload = token.payload() assert_equal(len(payload), 1) assert_equal(payload["scope"], '')