Przeglądaj źródła

OAuth (part 3 draft)

Visman 2 lat temu
rodzic
commit
32d9aed7c1
2 zmienionych plików z 13 dodań i 10 usunięć
  1. 11 8
      app/Models/Pages/RegLog.php
  2. 2 2
      app/Models/Provider/Driver.php

+ 11 - 8
app/Models/Pages/RegLog.php

@@ -66,17 +66,20 @@ class RegLog extends Page
         $this->c->Lang->load('admin_providers');
 
         $provider = $this->c->providers->init()->get($args['name']);
+        $stages   = [1, 2, 3];
 
-        if (true !== $provider->verifyAuth($_GET)) {
-            return $this->c->Message->message($provider->error);
-        }
+        foreach ($stages as $stage) {
+            $result = match ($stage) {
+                1 => $provider->verifyAuth($_GET),
+                2 => $provider->reqAccessToken(),
+                3 => $provider->reqUserInfo(),
+            };
 
-        if (true !== $provider->reqAccessToken()) {
-            return $this->c->Message->message($provider->error);
+            if (true !== $result) {
+                return $this->c->Message->message($provider->error);
+            }
         }
 
-        if (true !== $provider->reqUserInfo()) {
-            return $this->c->Message->message($provider->error);
-        }
+        exit(var_dump($provider->userId, $provider->userName, $provider->userEmail));
     }
 }

+ 2 - 2
app/Models/Provider/Driver.php

@@ -35,8 +35,8 @@ abstract class Driver extends Model
 
         $this->zDepend = [
             'code'         => ['access_token', 'userInfo', 'userId', 'userName', 'userEmail', 'userEmailVerifed', 'userAvatar', 'userURL', 'userLocation', 'userGender'],
-            'access_token' => ['userInfo', 'userId', 'userName', 'userEmail', 'userEmailVerifed', 'userAvatar', 'userURL', 'userLocation', 'userGender'];
-            'userInfo'     => ['userId', 'userName', 'userEmail', 'userEmailVerifed', 'userAvatar', 'userURL', 'userLocation', 'userGender']
+            'access_token' => ['userInfo', 'userId', 'userName', 'userEmail', 'userEmailVerifed', 'userAvatar', 'userURL', 'userLocation', 'userGender'],
+            'userInfo'     => ['userId', 'userName', 'userEmail', 'userEmailVerifed', 'userAvatar', 'userURL', 'userLocation', 'userGender'],
         ];
     }