POST
/
users
/
{handle}
/
o-auth-identities
curl --request POST \
  --url https://codecombat.com/api/users/{handle}/o-auth-identities \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '{
  "provider": "<string>",
  "accessToken": "<string>",
  "code": "<string>"
}'
{
  "_id": "<string>",
  "email": "<string>",
  "name": "<string>",
  "slug": "<string>",
  "role": "<string>",
  "stats": {
    "gamesCompleted": 123,
    "concepts": {},
    "playTime": 123
  },
  "oAuthIdentities": [
    {
      "provider": "<string>",
      "id": "<string>"
    }
  ],
  "subscription": {
    "ends": "<string>",
    "active": true
  },
  "license": {
    "ends": "<string>",
    "active": true
  }
}
  1. If no access token is provided, it will use your OAuth2 token URL to exchange the given code for an access token.
  2. Then it will use the access token (given by you, or received from step 1) to look up the user on your service using the lookup URL, and expects a JSON object in response with an id property.
  3. It will then save that user id to the user in our db as a new OAuthIdentity.
url = `https://codecombat.com/api/users/${userID}/o-auth-identities`;
OAUTH_PROVIDER_ID = "xyz";
json = { provider: OAUTH_PROVIDER_ID, accessToken: "1234" };
request.post({ url, json, auth }, (err, res) => {
  console.log(res.body.oAuthIdentities); // [ { provider: 'xyx', id: 'abcd' } ]
});

In this example, we call your lookup URL (let’s say, https://oauth.provider/user?t=<%= accessToken %>) with the access token (1234). The lookup URL returns { id: 'abcd' } in this case, which we save to the user in our db.

Authorizations

Authorization
string
header
required

Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.

Path Parameters

handle
string
required

The document's _id or slug.

Body

application/json

Response

200 - application/json
The affected user

Subset of properties listed here