Author v1
User Registration
User APIs are defined to provide basic sign up, login, logout and user profile management. User can sign up/register with email, or social network login from Facebook and Google Plus.
To register user send POST with following to information to User API root:
- Type - Email, Facebook, Google Plus, Twitter
- Email - if type is email provide user's email address
- Password - if type is email provide user selected password
- MediaToken - if type is Facebook, Google+ or Twitter provide the access token returned by those APIs.
- Name - full name of the user
Authorization header is composed of application key concatenated with client secret in the way shown below:
app-key:client-secret
Next the string base64 encoded and passed into Authorization header as a basic authentication:
Authorization: Basic <encoded auth string from above>
Registering via Facebook
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Basic <authstring key/secret pair>" \
-d '{"Type": "Facebook", "MediaToken": "EAAIGWvaKMVIBAC02IBmIwUOcme06eLC1GzP0WFjAGZA45FnI2AgjVd2zWH66dz1iQzFKOopQG3yFgc03KqBfkBxKjNfl3DJ5nzZBuf1VZB3eZBaod2GckoxNnTYD1IKTHAwiarseBzY3cfId6UoMsvZCtEUgZBQYLQ4yYM1dFAEEG8OTS3JdBg"}' \
https://aum.iris.comcast.net/v1/user/
Output: Successful registration
{"Expires_in":"240","Id":"861b77c5-ab67-11e6-82b1-fa163e7504ec",
"Token":"eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBfa2V5IjoiU004aXUweExEeEhmVVZjeHl3U1VMUHZsWGJVbnVqWCIsImRvbWFpbiI6InJvYnMtdGVzdC1hcHAtMS5jb21jYXN0LmNvbSIsImV4cCI6MTQ3OTQ4OTY1NiwiaWF0IjoxNDc5NDc1MjU2LCJpZCI6IjEwNjQ2Nzg5OTgyMTIwMSIsImlzcyI6ImlyaXNhdXRoIiwibmFtZSI6Ikxpc2EgQWxhY2djaWdjZWhlZiBGYWxsZXJlc2N1Iiwic2NvcGVzIjoiY2xpZW50IHJlYWQ6aWRtIHJlYWR3cml0ZTplbSIsInN1YiI6IjEwNjQ2Nzg5OTgyMTIwMSIsInR5cGUiOiJGYWNlYm9vayIsInVzZXJfaWQiOiI4NjFiNzdjNS1hYjY3LTExZTYtODJiMS1mYTE2M2U3NTA0ZWMifQ.a0xH30FdObr9rXrHbyifi5CuFzY-Ie4rR1lWc6Ea2qM7MRyySo0j4oSKGtjOZvsrEOopH6ZyFIoHCGA-dbDsbw",
"User_data":{"first_name":"Lisa","gender":"female","last_name":"Fallerescu","middle_name":"Alacgcigcehef","name":"Lisa Alacgcigcehef Fallerescu"}}
Output: User already registered
{"error":{"message":"User already registered, login instead"}}
Registering via CIMA
NOTE: CIMA token must have RTCG scope
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Basic <authstring key/secret pair>" \
-d '{"Type": "Cima", "MediaToken": "EAAIGWvaKMVIBAC02IBmIwUOcme06eLC1GzP0WFjAGZA45FnI2AgjVd2zWH66dz1iQzFKOopQG3yFgc03KqBfkBxKjNfl3DJ5nzZBuf1VZB3eZBaod2GckoxNnTYD1IKTHAwiarseBzY3cfId6UoMsvZCtEUgZBQYLQ4yYM1dFAEEG8OTS3JdBg"}' \
https://aum.iris.comcast.net/v1/user/
Output: Successful registration
{"Expires_in":"240","Id":"8a391d48-ab67-11e6-82b1-fa163e7504ec","Token":"eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBfa2V5IjoiU004aXUweExEeEhmVVZjeHl3U1VMUHZsWGJVbnVqWCIsImRvbWFpbiI6InJvYnMtdGVzdC1hcHAtMS5jb21jYXN0LmNvbSIsImV4cCI6MTQ3OTQ4OTY2MywiaWF0IjoxNDc5NDc1MjYzLCJpZCI6IjUzNTkwNjM4MDEyMDAyMjAxNkNvbWNhc3QuY3VzdCIsImlzcyI6ImlyaXNhdXRoIiwic2NvcGVzIjoiY2xpZW50IHJlYWQ6aWRtIHJlYWR3cml0ZTplbSIsInN1YiI6IjUzNTkwNjM4MDEyMDAyMjAxNkNvbWNhc3QuY3VzdCIsInR5cGUiOiJDaW1hIiwidXNlcl9pZCI6IjhhMzkxZDQ4LWFiNjctMTFlNi04MmIxLWZhMTYzZTc1MDRlYyJ9.bddhHPTBC_e5aKEqknrYuv3uXb9sLN3x8_hZzRAkLhI628wFMndmlGI62EVoziIIX2NgHWqIfQ88dK1Y6wKVGw",
"User_data":{"email":"ROBJSMITH@comcast.net"}}
Output: User already registered
401
{"error":{"code":"AUTH_0003","message":"User already exists. Login instead."}}
Example of registering via PingID
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Basic <authstring key/secret pair>" \
-d '{"Type": "PingID", "MediaToken": "ZBUu7Z5RvppICt0nNGKKm68pVjaW"}' \
https://aum.iris.comcast.net/v1/user/
Output: Successful registration
{
"Expires_in": "240",
"Id": "e1509576-e666-11e6-a427-f45c898ea341",
"Token": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBfa2V5IjoiSEtjZmk5V3ZxVjFoUGlqcCtMakkyYjRFTnRZSFArdW0iLCJkb21haW4iOiJ0ZXN0YXBwdHdvLmNvbWNhc3QuY29tIiwiZXhwIjoxNDg1NzQzNjM0LCJpYXQiOjE0ODU3MjkyMzQsImlkIjoiMWE5MjdhZDctMTU1Yy00MmU2LTk0OTMtMWIzZWZkNDIwMjdlIiwiaXNzIjoiaXJpc2F1dGgiLCJzY29wZXMiOiJjbGllbnQgcmVhZDppZG0gcmVhZHdyaXRlOmVtIHJlYWR3cml0ZTpudG0iLCJzdWIiOiIxYTkyN2FkNy0xNTVjLTQyZTYtOTQ5My0xYjNlZmQ0MjAyN2UiLCJ0eXBlIjoiUGluZ0lEIiwidXNlcl9pZCI6ImUxNTA5NTc2LWU2NjYtMTFlNi1hNDI3LWY0NWM4OThlYTM0MSJ9.M2To5NdWutpopgdtqcws3BhTPV_DJffggAxKOOgXXfar9KwlvkqrH9JyX3Gt4TfaT6y5ws21DR6LV5zVp-abdw"
}
Output: User already registered
401
{"error":{"code":"AUTH_0003","message":"User already exists. Login instead."}}
Registering via Email
curl -X POST -H "Content-Type: application/json"
-H "Authorization: Basic <authstring key/secret pair>"
-d '{"Type": "Email", "Email": "robjsliwa@gmail.com", "Name": "Rob J Sliwa", "Password": "password"}' http://aum.iris.comcast.net/v1/user/
Output: Successful registration
{"Expires_in":"240","Id":"8e80b36c-ab67-11e6-82b1-fa163e7504ec","Token":"eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBfa2V5IjoiU004aXUweExEeEhmVVZjeHl3U1VMUHZsWGJVbnVqWCIsImRvbWFpbiI6InJvYnMtdGVzdC1hcHAtMS5jb21jYXN0LmNvbSIsImV4cCI6MTQ3OTQ4OTY2NiwiaWF0IjoxNDc5NDc1MjY2LCJpZCI6InJvYmpzbGl3YUBnbWFpbC5jb20iLCJpc3MiOiJpcmlzYXV0aCIsIm5hbWUiOiJSb2IgSiBTbGl3YSIsInNjb3BlcyI6ImNsaWVudCByZWFkOmlkbSByZWFkd3JpdGU6ZW0iLCJzdWIiOiJyb2Jqc2xpd2FAZ21haWwuY29tIiwidHlwZSI6IkVtYWlsIiwidXNlcl9pZCI6IjhlODBiMzZjLWFiNjctMTFlNi04MmIxLWZhMTYzZTc1MDRlYyJ9.74XMVaqwuzVzAkz5-3O3u-fQ0QI3YjNF9Zo_2mYte58PRP1jAyruotx4yMy_Dqca1zPeBatl3XlxRbbwf4WVmQ",
"User_data":{"email":"robjsliwa@gmail.com","name":"Rob J Sliwa"}}
Registering of a Device
curl -X POST -H "Content-Type: application/json"
-H "Authorization: Basic <authstring key/secret pair>"
-d '{"Type": "Device", "TypeID": "1234567"}' http://aum.iris.comcast.net/v1/user/
Output: Successful registration
{"Expires_in":"240","Id":"a072cbb8-a14e-11e6-86d6-fa163e7504ec",
"Token":"eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsIng1dSI6Imh0dHA6Ly9sb2NhbGhvc3Q6NDY1NS9qd3RrZXlzL25NY09lUERTaU
Get Information About Current User
To get current user send GET to the user/current API.
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTkzNTI4MDUsImlhdCI6MTQ1OTM0NTYwNSwiaWQiOiI0NzYzNDA2NTkyMjU0NDQiLCJpc3MiOiJnYXBpZGIiLCJuYW1lIjoiUGx1bSBSb2R6aW5hIiwic3ViIjoiNDc2MzQwNjU5MjI1NDQ0IiwidHlwZSI6IkZhY2Vib29rIn0.QRStEbGnD6NYv5xfoXUnGDX8mTmO3_WiZnKK8IDoMwNiFRRV3WCM" \
https://aum.iris.comcast.net/v1/user/current
Returns status 200 and JSON string with all of the available user information:
{"Id":"8e80b36c-ab67-11e6-82b1-fa163e7504ec",
"User_data":{"email":"robjsliwa@gmail.com","name":"Rob J Sliwa"}}
Validate User Access Token
This is API is meant to be used by other servers in order to validate received JWT token. With this API other services can use Contact Manager as authentication service for the currently logged in user.
curl -X GET \
-H "Content-Type: application/json" \
-H "Autherization: Basic <authstring key/secret pair>" \
https://aum.iris.comcast.net/v1/user/validate?access_token=eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTkzNTI4MDUsImlhdCI6MTQ1OTM0NTYwNSwiaWQiOiI0NzYzNDA2NTkyMjU0NDQiLCJpc3MiOiJnYXBpZGIiLCJuYW1lIjoiUGx1bSBSb2R6aW5hIiwic3ViIjoiNDc2MzQwNjU5MjI1NDQ0IiwidHlwZSI6IkZhY2Vib29rIn0.QRStEbGnD6NYv5xfoXUnGDX8mTmO3_WiZnKK8IDoMwNiFRRV3WCM
Returns status 200 and JSON string with success message:
{"error":{"message":"Valid token"}}
or in case of failure status and JSON string will contain exact description for token validation failure. For example:
401
{"error":{"code":"AUTH_0010","message":"Invalid access token"}}
User Login
To login user the user send POST to login API root with the following values:
Type - Email, Facebook, Google +, Twitter
Email, password - is type is email
MediaToken - if type is Facebook, Google +, Twitter
Login via Facebook
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Basic <authstring key/secret pair>" \
-d '{"Type": "Facebook", "MediaToken": "skjdlskjdlsjdodije"}' \
https://aum.iris.comcast.net/v1/login/
Successful login will return status 200 and JSON with access token.
Example of successful login via Facebook
{"Expires_in":"240","Id":"861b77c5-ab67-11e6-82b1-fa163e7504ec","Token":"eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBfa2V5IjoiU004aXUweExEeEhmVVZjeHl3U1VMUHZsWGJVbnVqWCIsImRvbWFpbiI6InJvYnMtdGVzdC1hcHAtMS5jb21jYXN0LmNvbSIsImV4cCI6MTQ3OTQ4OTY1NiwiaWF0IjoxNDc5NDc1MjU2LCJpZCI6IjEwNjQ2Nzg5OTgyMTIwMSIsImlzcyI6ImlyaXNhdXRoIiwibmFtZSI6Ikxpc2EgQWxhY2djaWdjZWhlZiBGYWxsZXJlc2N1Iiwic2NvcGVzIjoiY2xpZW50IHJlYWQ6aWRtIHJlYWR3cml0ZTplbSIsInN1YiI6IjEwNjQ2Nzg5OTgyMTIwMSIsInR5cGUiOiJGYWNlYm9vayIsInVzZXJfaWQiOiI4NjFiNzdjNS1hYjY3LTExZTYtODJiMS1mYTE2M2U3NTA0ZWMifQ.a0xH30FdObr9rXrHbyifi5CuFzY-Ie4rR1lWc6Ea2qM7MRyySo0j4oSKGtjOZvsrEOopH6ZyFIoHCGA-dbDsbw",
"User_data":{"first_name":"Lisa","gender":"female","last_name":"Fallerescu","middle_name":"Alacgcigcehef","name":"Lisa Alacgcigcehef Fallerescu"}}
Login via Email
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Basic <authstring key/secret pair>" \
-d '{"Type": "Email", "Email": "robjsliwa@gmail.com", "Password": "password"}' \
https://aum.iris.comcast.net/v1/login/
Example of successful login via Email
{"Expires_in":"240","Id":"8e80b36c-ab67-11e6-82b1-fa163e7504ec","Token":"eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBfa2V5IjoiU004aXUweExEeEhmVVZjeHl3U1VMUHZsWGJVbnVqWCIsImRvbWFpbiI6InJvYnMtdGVzdC1hcHAtMS5jb21jYXN0LmNvbSIsImV4cCI6MTQ3OTQ4OTY2NiwiaWF0IjoxNDc5NDc1MjY2LCJpZCI6InJvYmpzbGl3YUBnbWFpbC5jb20iLCJpc3MiOiJpcmlzYXV0aCIsIm5hbWUiOiJSb2IgSiBTbGl3YSIsInNjb3BlcyI6ImNsaWVudCByZWFkOmlkbSByZWFkd3JpdGU6ZW0iLCJzdWIiOiJyb2Jqc2xpd2FAZ21haWwuY29tIiwidHlwZSI6IkVtYWlsIiwidXNlcl9pZCI6IjhlODBiMzZjLWFiNjctMTFlNi04MmIxLWZhMTYzZTc1MDRlYyJ9.74XMVaqwuzVzAkz5-3O3u-fQ0QI3YjNF9Zo_2mYte58PRP1jAyruotx4yMy_Dqca1zPeBatl3XlxRbbwf4WVmQ",
"User_data":{"email":"robjsliwa@gmail.com","name":"Rob J Sliwa"}}
Result when incorrect password was provided
{"error":{"message":"Invalid password"}}
Login via CIMA token
NOTE: CIMA token must have RTCG scope
curl -X POST -H "Content-Type: application/json"
-H "Authorization: Basic <authstring key/secret pair>"
-d '{"Type": "Cima", "MediaToken": ""}'
https://aum.iris.comcast.net/v1/login/
Example of successful login via CIMA
{"Expires_in":"240","Id":"8a391d48-ab67-11e6-82b1-fa163e7504ec","Token":"eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBfa2V5IjoiU004aXUweExEeEhmVVZjeHl3U1VMUHZsWGJVbnVqWCIsImRvbWFpbiI6InJvYnMtdGVzdC1hcHAtMS5jb21jYXN0LmNvbSIsImV4cCI6MTQ3OTQ4OTY2MywiaWF0IjoxNDc5NDc1MjYzLCJpZCI6IjUzNTkwNjM4MDEyMDAyMjAxNkNvbWNhc3QuY3VzdCIsImlzcyI6ImlyaXNhdXRoIiwic2NvcGVzIjoiY2xpZW50IHJlYWQ6aWRtIHJlYWR3cml0ZTplbSIsInN1YiI6IjUzNTkwNjM4MDEyMDAyMjAxNkNvbWNhc3QuY3VzdCIsInR5cGUiOiJDaW1hIiwidXNlcl9pZCI6IjhhMzkxZDQ4LWFiNjctMTFlNi04MmIxLWZhMTYzZTc1MDRlYyJ9.bddhHPTBC_e5aKEqknrYuv3uXb9sLN3x8_hZzRAkLhI628wFMndmlGI62EVoziIIX2NgHWqIfQ88dK1Y6wKVGw",
"User_data":{"email":"ROBJSLIWA@comcast.net"}}
Login via PingID token
curl -X POST -H "Content-Type: application/json"
-H "Authorization: Basic <authstring key/secret pair<"
-d '{"Type": "PingID", "MediaToken": "<PingID token>"}'
https://aum.iris.comcast.net/v1/login/
Example of successful login via PingID
{
"Expires_in": "240",
"Id": "e1509576-e666-11e6-a427-f45c898ea341",
"Token": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBfa2V5IjoiSEtjZmk5V3ZxVjFoUGlqcCtMakkyYjRFTnRZSFArdW0iLCJkb21haW4iOiJ0ZXN0YXBwdHdvLmNvbWNhc3QuY29tIiwiZXhwIjoxNDg1NzQzNjM0LCJpYXQiOjE0ODU3MjkyMzQsImlkIjoiMWE5MjdhZDctMTU1Yy00MmU2LTk0OTMtMWIzZWZkNDIwMjdlIiwiaXNzIjoiaXJpc2F1dGgiLCJzY29wZXMiOiJjbGllbnQgcmVhZDppZG0gcmVhZHdyaXRlOmVtIHJlYWR3cml0ZTpudG0iLCJzdWIiOiIxYTkyN2FkNy0xNTVjLTQyZTYtOTQ5My0xYjNlZmQ0MjAyN2UiLCJ0eXBlIjoiUGluZ0lEIiwidXNlcl9pZCI6ImUxNTA5NTc2LWU2NjYtMTFlNi1hNDI3LWY0NWM4OThlYTM0MSJ9.M2To5NdWutpopgdtqcws3BhTPV_DJffggAxKOOgXXfar9KwlvkqrH9JyX3Gt4TfaT6y5ws21DR6LV5zVp-abdw",
"User_data": {
"client_id": "SetTopClientROPG",
"entryuuid": "1a927ad7-155c-42e6-9493-1b3efd42027e",
"uid": "comcast"
},
"is_active": true
}
Anonymous Login
This API edge allows anonymous login. This means that no user will be created and persisted on the server to identify client who request it. To perform anonymous login POST to the API edge described below. The only parameter is UserID. The information in UserID is only used to encoded it in the JWT access token that will be returned if this call is successful. If you do not need to provide any user identifier simply pass empty string in UserID field.
curl -X POST \
-H "Content-Type: application/json" \
-H "X-App-Key: BTl6mn/nqEH9SnA82z9L8e+sdlMUoI+E" \
-d '{"UserID": "some user id"}'
https://aum.iris.comcast.net/v1/login/anonymous/
Result
Return valid JWT access token. No user entry is created.
Get AppServer to Server JWT
This API provides JWT for Application Server to Server requests. This style of JWT used for Application Servers that need to communicate with Iris Platform.
curl -X POST -H "Content-Type: application/json"
-H "Authorization: Basic <authstring key/secret pair>"
-d '{"Type": "Server"}'
https://aum.iris.comcast.net/v1/login/
Example of successful JWT get for app server to server
200
{"Expires_in":1440,"Token":"eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsIng1dSI6Imh0dHA6Ly9sb2NhbGhvc3Q6NDY1NS9qd3RrZXlzL0lVWkhRckhLTnRFR2NUOGlYZjQ5czNsZTdBbW1CNG8ucHViIn0.eyJhcHBfa2V5IjoiSVVaSFFySEtOdEVHY1Q4aVhmNDlzM2xlN0FtbUI0byIsImRvbWFpbiI6Im15dGVzdGFwcDEuY29tY2FzdC5jb20iLCJleHAiOjE0NzgwMTcyOTksImlhdCI6MTQ3NzkzMDg5OSwiaWQiOiJJVVpIUXJIS050RUdjVDhpWGY0OXMzbGU3QW1tQjRvIiwiaXNzIjoiaXJpc2F1dGgiLCJzY29wZXMiOiJjbGllbnQgcmVhZHdyaXRlOmlkbSIsInN1YiI6IklVWkhRckhLTnRFR2NUOGlYZjQ5czNsZTdBbW1CNG8iLCJ0eXBlIjoiRGV2aWNlIn0.vmqm-HK7zHpDdOnyfsKfC1lvyr8Phfzkq0zaRFIEqqCwDD3witUq_n1gw91tiTVRSuIKLl2AuFOKtDOH_jkyCA"}
User Logout
To logout the user send GET to logout API root with valid access token.
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTkzNTI4MDUsImlhdCI6MTQ1OTM0NTYwNSwiaWQiOiI0NzYzNDA2NTkyMjU0NDQiLCJpc3MiOiJnYXBpZGIiLCJuYW1lIjoiUGx1bSBSb2R6aW5hIiwic3ViIjoiNDc2MzQwNjU5MjI1NDQ0IiwidHlwZSI6IkZhY2Vib29rIn0.QRStEbGnD6NYv5xfoXUnGDX8mTmO3_WiZnKK8IDoMwNiFRRV3WCM" \
https://aum.iris.comcast.net/v1/logout/
Successful logout will return status 200 and JSON string with success message:
{"status":"User logged out"}
Version
This API end point returns Auth Manager version.
curl -X GET -H "Content-Type: application/json" https://aum.iris.comcast.net/v1/version/
Successful version request will return status 200 and JSON string with success message:
{"version":"v1.0.13"}