JumpCloud: callback
Overview
Receives the user back from JumpCloud and issues a one-time exchange code.
Handled by us; documented for completeness.
Nothing to send.
The user is redirected onward with a code. JumpCloud sends the browser here after JumpCloud: start sign-in. On success, the browser goes on to the dashboard's SSO callback page with ?code=, a one-time code (64 hex characters) that expires after 2 minutes by default; the dashboard redeems it with JumpCloud: exchange the code. On failure, it goes to the same page with ?error= and a reason.
Prerequisites
- A sign-in started with JumpCloud: start sign-in, in the same browser.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
GET /api/v1/auth/sso/jumpcloud/callback
Authentication
Public (no token)
- The user is identified by JumpCloud, and matched to a user by email address.
- The
statemust match the one stored in the browser's session when the sign-in started; otherwise the sign-in fails witherror=sso_failed. - Only users with JumpCloud sign-in turned on, whose company is a partner, an account or a location, and who aren't locked or deactivated, get a code.
Rate limit
10 requests per minute, counted per client IP address. See Rate limits.
Request parameters
JumpCloud adds these to the URL.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
code | query | string | Yes | JumpCloud's authorization code. |
state | query | string | Yes | The state sent in the redirect to JumpCloud. Checked against the browser's session. |
Request body
None.
Request payload
None.
Response body
None. The response is always a 302 redirect to the dashboard's SSO callback page.
| Query parameter | Description |
|---|---|
code | On success: the one-time code to redeem with JumpCloud: exchange the code. |
error | On failure, the reason: sso_failed (JumpCloud sign-in couldn't be completed, for example a missing or mismatched state), sso_no_email (JumpCloud returned no email address), no_user (no user has that email), sso_not_enabled (JumpCloud sign-in isn't turned on for the user), no_company (the user has no company), role_not_allowed (the user isn't a partner, account or location user), account_locked (locked after failed sign-ins), account_inactive (the user is deactivated). |
Response payload
HTTP/1.1 302 Found
Location: https://production.shoutaboutus.com/auth/sso/callback?code=<one-time-code>Examples
Success payload
See Response payload.
Error payload
302 Sign-in refused
HTTP/1.1 302 Found
Location: https://production.shoutaboutus.com/auth/sso/callback?error=sso_not_enabled429 Too many requests
{
"message": "Too Many Attempts."
}| Status | Meaning |
|---|---|
302 | Redirect to the dashboard, with code on success or error on failure. |
429 | More than 10 requests in a minute from your IP address. |
500 | Unexpected server error. |
Example request
curl --request GET \
--url "https://production-api.shoutaboutus.com/api/v1/auth/sso/jumpcloud/callback?code=<oidc_code>&state=<state>"Updated 17 days ago
