Skip to content

Authentication API ​

Authenticate with Northeastern SSO ​

Redirects to (or returns) a Northeastern SSO URL to begin user authentication process

plaintext
GET /api/v2/login

Request Parameters ​

Body ParametersTypeRequiredDescription
no_follow_redirectBoolNoSet value to true to get a JSON object returned with SSO Login URL. Default bahavior returns a 302 Redirect.

Success Responses ​

no_follow_redirect: false (default)
HTTP/1.3 302 Found
Location: https://neuidmsso.neu.edu/idp/profile/SAML2/Redirect/SSO?SAMLRequest={TOKEN}&RelayState=https://get.cbord.com/northeastern/full/login.php?mobileapp=1
no_follow_redirect: true
json
{
    "sso_url": "https://neuidmsso.neu.edu/idp/profile/SAML2/Redirect/SSO?SAMLRequest={TOKEN}&RelayState=https://get.cbord.com/northeastern/full/login.php?mobileapp=1",
    "message": "Login Flow Started"
}

Failure Responses ​

`no_follow_redirect` set to non-Boolean value
json
{ 	
	"message": "Parameter 'no_follow_redirect' set to non-boolean value" 
}

Details ​

Authentication Redirect URL Chain & Additional Details
  1. https://neuidmsso.neu.edu/idp/profile/SAML2/Redirect/SSO?SAMLRequest={TOKEN}&RelayState=https://get.cbord.com/northeastern/full/login.php?mobileapp=1
  2. ... (Northeastern SSO Authentication URLs)
  3. https://get.cbord.com/northeastern/full/mobileapp_login_validator.php?sessionId={SESSION_ID}

NOTE

SESSION_ID is a UUIDv4 string which CBORD uses as session tokens for the GET Mobile Application. The initial SESSION_ID token is a valid SESSION_ID and the page will say "validated", however if you arbitrarily replace that UUIDv4 token it seemingly will still say "validated" despite the new token not being valid, unsure why that is.

Closing Sessions ​

Closes a session using SESSION_ID

plaintext
POST /api/v2/closeSession

Request Parameters ​

Body ParametersTypeRequiredDescription
session_idstringYESsession_id to close.

Success Response ​

json
{
	"response": true,
	"exception": null
}

Renewing Sessions ​

Renews SESSION_ID tokens using DEVICE_ID and PIN if SESSION_ID is expired, else returns the same SESSION_ID.

plaintext
POST /api/v2/auth

Request Parameters ​

TIP

Providing the existing or last known session_id can help cut down on unnecessary sessions. Each time you create a new session, the old session is not automatically closed, and session_id tokens don't expire for a couple days.

Body ParametersTypeRequiredDescription
device_idstringYESUUIDv4 identifer for each device
pinnumber(4)YES4-digit PIN set upon login. Also used in case of not being able to use biometrics to authenticate in GET Mobile App
session_idstringNOIf configured, will attempt to validate Session and if valid, returns same session_id, else creates a new session using device_id and pin

Success Response ​

json
{
	"response": "{SESSION_ID}",
	"exception": null
}

Failure Reponse ​

9510: Device Marked As Lost

TIP

Usually this just means the device was never registered to a User Account. I assume a lost device returns the same error code.

json
{
	"response": null,
	"exception": "9510|Device marked as lost"
}
9504: Invalid PIN

TIP

This occurs when the device_id does exist, but the pin is wrong.

json
{
	"response": null,
	"exception": "9504|Invlaid pin login credentials."
}

NOTE

No, that's not a spelling error on my part. That's the exact response CBORD provides when the device_id exists, but the PIN is wrong.