oAuth Snippet

Based on https://developers.google.com/identity/openid-connect/openid-connect#php_1

unlisted ⁨1⁩ ⁨file⁩ 2022-11-14 16:36:17 UTC

index.jsx

Raw
if(sessionStorage.getItem("state") == null {
  let state = await axios.post("https://backend.<mydomain.tld>/oauth/login");
sessionStorage.setItem("state", state.data);
} else {
  const search new URLSearchParams(location.search);
  if(search.get("state") == sessionStorage.getItem("state")) {
    const code = search.get("code");
    sessionStorage.setItem("code", code);

    var authorizationData = new URLSearchParams();
    authorizationData.append("code", code);
    authorizationData.append("client_id", "<service-client-id>");
    authorizationData.append("client_secret", "<service-client-secret");
    authorizationData.append("redirect_uri", "https://<mydomain.tld>/<path>/<to>/<login>/");
    authorizationData.append("grant_type", "authorization_code");
    
    let response = axios.post("https://auth.<mydomain.tld>/application/o/token/", authorizationData, {
      headers: {
        'Access-Control-Allow-Credentials': 'true',      
        'Access-Control-Allow-Origin': '*',
        'Access-Control-Allow-Methods': '*',
        'Access-Control-Allow-Headers': '*'.
      }
    });
  }
}