Sample code for 30+ languages & platforms
React Native

OneLogin OIDC - Get Discovery Document (OpenID Connect)

See more OneLogin OIDC Examples

Downloads the OpenID Connect self-discovery document for a OneLogin OIDC enabled app.

Chilkat React Native Downloads

React Native
import { Http, HttpResponse, JsonObject } from '@chilkat/react-native'

async function chilkatExample() {
  // This example requires the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  const http = new Http();

  http.accept = 'application/json';

  const resp = new HttpResponse();
  try {
    await http.httpNoBodyAsync('GET', 'https://<account>.onelogin.com/oidc/.well-known/openid-configuration', resp);
  } catch {
    console.log(http.lastErrorText);
    return;
  }

  console.log(`Response Status Code: ${resp.statusCode}`);

  const jsonResponse = new JsonObject();
  jsonResponse.load(resp.bodyStr);
  jsonResponse.emitCompact = false;
  console.log(jsonResponse.emit());

  if (resp.statusCode !== 200) {
    console.log('Failed.');
    return;
  }

  // Sample output...
  // (See the parsing code below..)
  // 
  // Use the this online tool to generate parsing code from sample JSON: 
  // Generate Parsing Code from JSON

  // {
  //   "acr_values_supported": [
  //     "onelogin:nist:level:1:re-auth"
  //   ],
  //   "authorization_endpoint": "https://chilkat-dev.onelogin.com/oidc/auth",
  //   "claims_parameter_supported": true,
  //   "claims_supported": [
  //     "acr",
  //     "auth_time",
  //     "company",
  //     "custom_fields",
  //     "department",
  //     "email",
  //     "family_name",
  //     "given_name",
  //     "groups",
  //     "iss",
  //     "locale_code",
  //     "name",
  //     "params",
  //     "phone_number",
  //     "preferred_username",
  //     "sid",
  //     "sub",
  //     "title",
  //     "updated_at"
  //   ],
  //   "grant_types_supported": [
  //     "authorization_code",
  //     "implicit",
  //     "refresh_token",
  //     "client_credentials",
  //     "password"
  //   ],
  //   "id_token_signing_alg_values_supported": [
  //     "RS256"
  //   ],
  //   "issuer": "https://openid-connect.onelogin.com/oidc",
  //   "jwks_uri": "https://chilkat-dev.onelogin.com/oidc/certs",
  //   "request_parameter_supported": false,
  //   "request_uri_parameter_supported": false,
  //   "response_modes_supported": [
  //     "form_post",
  //     "fragment",
  //     "query"
  //   ],
  //   "response_types_supported": [
  //     "code",
  //     "id_token token",
  //     "id_token"
  //   ],
  //   "scopes_supported": [
  //     "openid",
  //     "name",
  //     "profile",
  //     "groups",
  //     "email",
  //     "params",
  //     "phone"
  //   ],
  //   "subject_types_supported": [
  //     "public"
  //   ],
  //   "token_endpoint": "https://chilkat-dev.onelogin.com/oidc/token",
  //   "token_endpoint_auth_methods_supported": [
  //     "client_secret_basic",
  //     "client_secret_post",
  //     "none"
  //   ],
  //   "userinfo_endpoint": "https://chilkat-dev.onelogin.com/oidc/me",
  //   "userinfo_signing_alg_values_supported": [
  //   ],
  //   "code_challenge_methods_supported": [
  //     "S256"
  //   ],
  //   "introspection_endpoint": "https://chilkat-dev.onelogin.com/oidc/token/introspection",
  //   "introspection_endpoint_auth_methods_supported": [
  //     "client_secret_basic",
  //     "client_secret_post",
  //     "none"
  //   ],
  //   "revocation_endpoint": "https://chilkat-dev.onelogin.com/oidc/token/revocation",
  //   "revocation_endpoint_auth_methods_supported": [
  //     "client_secret_basic",
  //     "client_secret_post",
  //     "none"
  //   ],
  //   "claim_types_supported": [
  //     "normal"
  //   ]
  // }
  // 

  let i = 0;
  let countI = 0;
  let strVal = '';

  const authorizationEndpoint = jsonResponse.stringOf('authorization_endpoint');
  const issuer = jsonResponse.stringOf('issuer');
  const jwksUri = jsonResponse.stringOf('jwks_uri');
  const tokenEndpoint = jsonResponse.stringOf('token_endpoint');
  const userinfoEndpoint = jsonResponse.stringOf('userinfo_endpoint');
  const introspectionEndpoint = jsonResponse.stringOf('introspection_endpoint');
  const revocationEndpoint = jsonResponse.stringOf('revocation_endpoint');
  i = 0;
  countI = jsonResponse.sizeOfArray('acr_values_supported');
  while (i < countI) {
    jsonResponse.i = i;
    strVal = jsonResponse.stringOf('acr_values_supported[i]');
    i++;
  }

  i = 0;
  countI = jsonResponse.sizeOfArray('claims_supported');
  while (i < countI) {
    jsonResponse.i = i;
    strVal = jsonResponse.stringOf('claims_supported[i]');
    i++;
  }

  i = 0;
  countI = jsonResponse.sizeOfArray('grant_types_supported');
  while (i < countI) {
    jsonResponse.i = i;
    strVal = jsonResponse.stringOf('grant_types_supported[i]');
    i++;
  }

  i = 0;
  countI = jsonResponse.sizeOfArray('id_token_signing_alg_values_supported');
  while (i < countI) {
    jsonResponse.i = i;
    strVal = jsonResponse.stringOf('id_token_signing_alg_values_supported[i]');
    i++;
  }

  i = 0;
  countI = jsonResponse.sizeOfArray('response_modes_supported');
  while (i < countI) {
    jsonResponse.i = i;
    strVal = jsonResponse.stringOf('response_modes_supported[i]');
    i++;
  }

  i = 0;
  countI = jsonResponse.sizeOfArray('response_types_supported');
  while (i < countI) {
    jsonResponse.i = i;
    strVal = jsonResponse.stringOf('response_types_supported[i]');
    i++;
  }

  i = 0;
  countI = jsonResponse.sizeOfArray('scopes_supported');
  while (i < countI) {
    jsonResponse.i = i;
    strVal = jsonResponse.stringOf('scopes_supported[i]');
    i++;
  }

  i = 0;
  countI = jsonResponse.sizeOfArray('subject_types_supported');
  while (i < countI) {
    jsonResponse.i = i;
    strVal = jsonResponse.stringOf('subject_types_supported[i]');
    i++;
  }

  i = 0;
  countI = jsonResponse.sizeOfArray('token_endpoint_auth_methods_supported');
  while (i < countI) {
    jsonResponse.i = i;
    strVal = jsonResponse.stringOf('token_endpoint_auth_methods_supported[i]');
    i++;
  }

  i = 0;
  countI = jsonResponse.sizeOfArray('userinfo_signing_alg_values_supported');
  while (i < countI) {
    jsonResponse.i = i;
    i++;
  }

  i = 0;
  countI = jsonResponse.sizeOfArray('code_challenge_methods_supported');
  while (i < countI) {
    jsonResponse.i = i;
    strVal = jsonResponse.stringOf('code_challenge_methods_supported[i]');
    i++;
  }

  i = 0;
  countI = jsonResponse.sizeOfArray('introspection_endpoint_auth_methods_supported');
  while (i < countI) {
    jsonResponse.i = i;
    strVal = jsonResponse.stringOf('introspection_endpoint_auth_methods_supported[i]');
    i++;
  }

  i = 0;
  countI = jsonResponse.sizeOfArray('revocation_endpoint_auth_methods_supported');
  while (i < countI) {
    jsonResponse.i = i;
    strVal = jsonResponse.stringOf('revocation_endpoint_auth_methods_supported[i]');
    i++;
  }

  i = 0;
  countI = jsonResponse.sizeOfArray('claim_types_supported');
  while (i < countI) {
    jsonResponse.i = i;
    strVal = jsonResponse.stringOf('claim_types_supported[i]');
    i++;
  }
}