Commit 7cf7c2107bd5788d369e3f33e354f53795831691

Authored by oji
1 parent b5c6d0399d
Exists in master

bug fixes sso callback

Showing 1 changed file with 16 additions and 3 deletions Side-by-side Diff

SsoClientLibrary.php
... ... @@ -34,7 +34,6 @@
34 34 }
35 35  
36 36 public function ssoRequest() {
37   - // $state = Str::random(40);
38 37 $state = base64_encode(random_bytes(40));
39 38 $query = http_build_query([
40 39 'client_id' => $this->clientId,
... ... @@ -50,7 +49,11 @@
50 49 }
51 50  
52 51 public function ssoCallback() {
53   - if (isset($_GET['code']) && !empty(($_GET['code']))) {
  52 + $url = parse_url($this->redirectUri);
  53 + $code = str_replace($url['path'] . '?code=','',$_SERVER['REQUEST_URI']);
  54 + $code = explode('&',$code);
  55 + $code = $code[0] ?? '';
  56 + if ($code != '') {
54 57 $_access_token = '';
55 58 $_errors = '';
56 59  
... ... @@ -59,7 +62,7 @@
59 62 'client_id' => $this->clientId,
60 63 'client_secret' => $this->clientSecret,
61 64 'redirect_uri' => $this->redirectUri,
62   - 'code' => $_GET['code'],
  65 + 'code' => $code,
63 66 ];
64 67 $arr_token = $this->__runCurl('POST', $this->targetUri."oauth/token", $_posts);
65 68 return $arr_token;
... ... @@ -122,6 +125,16 @@
122 125 return $error;
123 126 }
124 127 die('Something went wrong, please trace back your action!');
  128 + }
  129 +
  130 + public function ssoLogout($url_back = '') {
  131 + $query = http_build_query([
  132 + 'url_back' => $url_back,
  133 + ]);
  134 +
  135 + $_url = $this->targetUri ."sso/logout?" . $query;
  136 + header("Location: " . $_url);
  137 + die();
125 138 }
126 139  
127 140 }