Return JSON responses in auth, token and micropub API
[anoweco.git] / www / auth.php
index 5e3ed2344032cd0b731b6623c393ab16edbbd657..d47642c97bab9d95416044a80a89fcef6d9f693c 100644 (file)
@@ -11,8 +11,9 @@ require 'www-header.php';
 function getOrCreateUser($mode, $name, $imageurl, $email)
 {
     if ($mode == 'anonymous') {
-        $name  = 'Anonymous';
-        $email = '';
+        $name     = 'Anonymous';
+        $email    = '';
+        $imageurl = '';
     } else {
         if ($name == '') {
             $name = 'Anonymous';
@@ -59,20 +60,16 @@ if ($_SERVER['REQUEST_METHOD'] == 'GET') {
         'name'     => '',
         'imageurl' => '',
     );
-    $userbaseurl = Urls::full('/user/');
-    if (substr($me, 0, strlen($userbaseurl)) == $userbaseurl) {
-        //actual user URL - loads his data
-        $userid = substr($me, strrpos($me, '/') + 1, -4);
-        if (intval($userid) == $userid) {
-            $storage = new Storage();
-            $rowUser = $storage->getUser($userid);
-            if ($rowUser !== null) {
-                $id['mode']     = 'data';
-                $id['name']     = $rowUser->user_name;
-                $id['imageurl'] = $rowUser->user_imageurl;
-                if ($id['imageurl'] == Urls::userImg()) {
-                    $id['imageurl'] = '';
-                }
+    $userId = Urls::userId($me);
+    if ($userId !== null) {
+        $storage = new Storage();
+        $rowUser = $storage->getUser($userId);
+        if ($rowUser !== null) {
+            $id['mode']     = 'data';
+            $id['name']     = $rowUser->user_name;
+            $id['imageurl'] = $rowUser->user_imageurl;
+            if ($id['imageurl'] == Urls::userImg()) {
+                $id['imageurl'] = '';
             }
         }
     }
@@ -149,8 +146,8 @@ if ($_SERVER['REQUEST_METHOD'] == 'GET') {
             error('Invalid signature');
         }
         header('HTTP/1.0 200 OK');
-        header('Content-type: application/x-www-form-urlencoded');
-        echo http_build_query(['me' => $me]);
+        header('Content-type: application/json');
+        echo json_encode(['me' => $me]);
         exit();
     }
 } else if ($_SERVER['REQUEST_METHOD'] == 'HEAD') {