From 6e143f7ed31f0928519e0c83bf56dca1de7a3f19 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Wed, 27 May 2020 14:54:27 +0300 Subject: [PATCH] Apple OAuth tests --- app/config/providers.php | 12 ++++++------ public/images/oauth2/apple.png | Bin 1360 -> 3582 bytes src/Appwrite/Auth/OAuth2/Apple.php | 29 +++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 6 deletions(-) diff --git a/app/config/providers.php b/app/config/providers.php index 703bbef26..490c17355 100644 --- a/app/config/providers.php +++ b/app/config/providers.php @@ -73,12 +73,12 @@ return [ 'enabled' => true, 'mock' => false, ], - // 'apple' => [ - // 'developers' => 'https://developer.apple.com/', - // 'icon' => 'icon-apple', - // 'enabled' => false, - // 'mock' => false, - // ], + 'apple' => [ + 'developers' => 'https://developer.apple.com/', + 'icon' => 'icon-apple', + 'enabled' => true, + 'mock' => false, + ], 'amazon' => [ 'developers' => 'https://developer.amazon.com/apps-and-games/services-and-apis', 'icon' => 'icon-amazon', diff --git a/public/images/oauth2/apple.png b/public/images/oauth2/apple.png index b0fdfd14f055970a22144a33cef8f0d79747b60d..98086e8048cce1c1a8d8317bb47394ac48bc6d40 100644 GIT binary patch literal 3582 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 delta 1352 zcmV-O1-JVC8_)`n8Gi%-007$SUEcrz00d`2O+f$vv5yP zfP?@5`Tzg`fam}Kbua(`>RI+y?e7jT@qQ9J+u00Lr5M??VshmXv^00009a7bBm z0001B0001A0I0QS^8f$<2XskIMF-;w1r#pk->6#`@lQg-$jFDzomvg?&RXCsflpp7u@8{fm&bjA%FBl94 zgTY`h7z_r3!GB;d>>!S+x9B9m{WRm{ccOOdtKz`VGxQVVDp^iQR_(5$hMNdSIYJnK zJXRIk7R1A0zNUzE{mAf<-65%IJjq~*hQ%^(+8tEoI0^F|g%S;mNsibZR;4)b(@$=T zMvhb5ZFgXm;^rx?Y|*fY^QzrpRgRZqW#=QyY3{K*tba;z65;ZeVQw)+uMJDFCLUfQ zRU%PjmRImdH?#8#qLY0ktrWP#yBsI~{}XZGyKxz%`JVSUM@qgKd68N?q$%F`Y>@+s z%reLTzc7xIT{Ph)%`z);{Uw8kR=R1Y2`_Ha%rilZNwPS3kOSmcV1^7~x@n^sA1<;a zS!9YKMt@lQFNnB^(8pth@KJ{gD3W271!8>55K9!PB}5Os?57bgw_R`7B2SVyL!96T z*6kJX@-oj8#*6c&-%>2Gz-3lwVGp|r{KIUu!7L}~Coa&firmNB%$2PYSaGWLiBX%ZA!WK6#jH4z_o z2!D#CNZ2J(FS_T>OKg1AL>!_y5SPTnp(au&*~;ou%k6fFtdkQI@k=D@)I`?wwxwmX z&|{a#B3A@O{5+z+E~$ykvnVJ69rW5G5*HQ;@d6ROD%2*v0$p?qCiff!sb@qd1F1TL z-%B?>F%j_4Mk7IQ+JD)@H4D1-G!SH*iDVD`FlAIwX*)Nr_kI&0q27gdL zq8zYG1K?@Si)c*oqR#c9zgzy38Y0?Rl~q3B1JQk_0*!n~TI+0N`O?0}ZlxULG+AYh zA~F4ql@y0KyUn1_lG)~g=@`%I=gH*qQ%~?Zk5garjm2LKGfjdtMe6ahmo7qEN^KD1 zeZHWe+q~S3c$BML;4oq8fCMuP^M515%#p?d9MloyVR|@7D-F0b>ppnF*z+UFfA}MR53Iuser; } + + protected function getToken($p8) + { + $keyfile = 'AuthKey_AABBCC1234.p8'; # <- Your AuthKey file + $keyid = '4LFF7TZ6Q5'; # <- Your Key ID + $teamid = 'YJHMCSNREU'; # <- Your Team ID (see Developer Portal) + $bundleid = 'test2.appwrite.io'; # <- Your Bundle ID + $url = 'https://api.development.push.apple.com'; # <- development url, or use http://api.push.apple.com for production environment + $token = 'e2c48ed32ef9b018........'; # <- Device Token + + function base64($data) { + return rtrim(strtr(base64_encode(json_encode($data)), '+/', '-_'), '='); + } + + $message = '{"aps":{"alert":"Hi there!","sound":"default"}}'; + + $key = openssl_pkey_get_private('file://'.$keyfile); + + $header = ['alg'=>'ES256', 'kid'=>$keyid]; + $claims = ['iss'=>$teamid, 'iat'=>time()]; + + $header_encoded = base64($header); + $claims_encoded = base64($claims); + + $signature = ''; + openssl_sign($header_encoded . '.' . $claims_encoded, $signature, $key, 'sha256'); + $jwt = $header_encoded . '.' . $claims_encoded . '.' . base64_encode($signature); + + } }