+15
-16
index.php
+15
-16
index.php
···
68
68
Flight::set('frontpageFeed', FRONTPAGE_FEED);
69
69
Flight::set('defaultRelay', DEFAULT_RELAY);
70
70
Flight::set('userAuth', array_key_exists('sbs_'.SITE_DOMAIN, $_SESSION) ? $_SESSION['sbs_'.SITE_DOMAIN] : null);
71
+
Flight::set('userPds', array_key_exists('sbs_'.SITE_DOMAIN.'_pds', $_SESSION) ? $_SESSION['sbs_'.SITE_DOMAIN.'_pds'] : null);
72
+
Flight::set('userInfo', array_key_exists('sbs_'.SITE_DOMAIN.'_userinfo', $_SESSION) ? $_SESSION['sbs_'.SITE_DOMAIN.'_userinfo'] : null);
71
73
Flight::set('flight.log_errors', false);
72
74
Flight::set('flight.handle_errors', false);
73
75
Flight::set('flight.content_length', false);
···
178
180
});
179
181
180
182
Flight::route('/login', function(): void {
181
-
if (!array_key_exists('username', $_GET)) {
182
-
$latte = new Latte\Engine;
183
-
$latte->render('./templates/login.latte', array_merge(Flight::get('standardParams'), [
184
-
'mainClass' => 'form',
185
-
'ogtitle' => SITE_TITLE." | login",
186
-
'ogdesc' => SITE_DESC,
187
-
'ogimage' => '',
188
-
'ogurl' => 'https://'.SITE_DOMAIN.'/login'
189
-
]));
190
-
die(1);
191
-
}
192
183
$username = $_GET['username'];
193
184
$bskyToucher = new BskyToucher();
194
185
$userInfo = $bskyToucher->getUserInfo($username);
···
231
222
$provider = new BskyProvider($options, $client, $httpFactory, $httpFactory, $httpFactory);
232
223
$provider->setPds($pds);
233
224
$name = $provider->getName();
234
-
235
-
echo 'get access token:';
236
-
print_r($storage->hasAccessToken($name));
237
-
238
225
if (isset($_GET['login']) && $_GET['login'] === $name) {
239
226
$auth_url = $provider->getAuthorizationUrl([
240
227
'client_assertion_type' => 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer',
···
242
229
]);
243
230
header('Location: '.$auth_url);
244
231
die(1);
245
-
} else if (isset($_GET['code'])) {
232
+
} else if (isset($_GET['code'], $_GET['iss'])) {
246
233
$storage->storeAccessToken($_GET['code'], $name);
234
+
$_SESSION['sbs_'.SITE_DOMAIN.'_pds'] = $_GET['iss'];
235
+
$_SESSION['sbs_'.SITE_DOMAIN.'_userinfo'] = $bskyToucher->getUserInfo()
247
236
header('Location: https://'.SITE_DOMAIN);
248
237
die(1);
249
238
} else if (isset($_GET['error'])) {
239
+
die(1);
240
+
} else {
241
+
$latte = new Latte\Engine;
242
+
$latte->render('./templates/login.latte', array_merge(Flight::get('standardParams'), [
243
+
'mainClass' => 'form',
244
+
'ogtitle' => SITE_TITLE." | login",
245
+
'ogdesc' => SITE_DESC,
246
+
'ogimage' => '',
247
+
'ogurl' => 'https://'.SITE_DOMAIN.'/login'
248
+
]));
250
249
die(1);
251
250
}
252
251
});