oauth.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. session_start();
  3. $url = 'https://adfs.alanyeung.co/adfs/oauth2/token';
  4. $fields = array(
  5. 'grant_type' => 'authorization_code',
  6. 'client_id' => 'c5c68c24-153c-4bf5-90e7-7552baea7f39',
  7. 'redirect_uri' => 'https://aroz.alanyeung.co/AOB/oauth.php',
  8. 'code' => $_POST["code"],
  9. );
  10. $postvars = http_build_query($fields);
  11. $ch = curl_init();
  12. curl_setopt($ch, CURLOPT_URL, $url);
  13. curl_setopt($ch, CURLOPT_POST, count($fields));
  14. curl_setopt($ch, CURLOPT_POSTFIELDS, $postvars);
  15. curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
  16. $result = curl_exec($ch);
  17. curl_close($ch);
  18. $data = json_decode($result,true);
  19. $jwt = explode('.', $data['id_token']);
  20. $userinfo = [];
  21. $userinfo = json_decode(base64_decode($jwt[1]), true);
  22. if($userinfo == []){
  23. echo "Error!";
  24. //header('Location: https://adfs.alanyeung.co/adfs/oauth2/authorize?client_id=c5c68c24-153c-4bf5-90e7-7552baea7f39&redirect_uri=https%3A%2F%2Faroz.alanyeung.co%2FAOB%2Foauth.php&scope=openid&response_type=code&response_mode=form_post&nonce=tacv8wxjk5');
  25. }else{
  26. //print_r($userinfo);
  27. header('aoAuth: oAUTH');
  28. $_SESSION["method"] = "ADFS";
  29. $_SESSION["login"] = $userinfo["upn"];
  30. setcookie("username",$userinfo["upn"],time()+ 172800 );
  31. setcookie("password","OAuthADFS",time()+ 172800 );
  32. //print_r($userinfo);
  33. echo '<script>localStorage.ArOZusername = "'.$userinfo["upn"].'";window.location = "./index.php"</script>';
  34. }
  35. ?>