An attempt at adding the token fetching thing to Misuzu.
This commit is contained in:
parent
647cc0061f
commit
a28b5b275c
2 changed files with 33 additions and 0 deletions
|
@ -57,6 +57,7 @@ Router::addRoutes(
|
|||
Route::get('/resolve', 'resolve'),
|
||||
Route::post('/bump', 'bump'),
|
||||
Route::post('/verify', 'verify'),
|
||||
Route::create(['GET', 'OPTIONS'], '/token', 'token'),
|
||||
Route::get('/bans', 'bans')->addChildren(
|
||||
Route::get('/check', 'checkBan'),
|
||||
Route::post('/create', 'createBan'),
|
||||
|
|
|
@ -393,4 +393,36 @@ final class SockChatHandler extends Handler {
|
|||
'perms' => self::calculatePermissions($userInfo),
|
||||
];
|
||||
}
|
||||
|
||||
public function token(HttpResponse $response, HttpRequest $request) {
|
||||
$httpOrigin = $request->getHeaderLine('Origin');
|
||||
|
||||
if(!empty($httpOrigin)) {
|
||||
$whitelist = Config::get('sockChat.origins', Config::TYPE_ARR, []);
|
||||
|
||||
if(!in_array($httpOrigin, $whitelist))
|
||||
return 403;
|
||||
|
||||
$request->setHeader('Access-Control-Allow-Origin', $httpOrigin);
|
||||
$request->setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET');
|
||||
$request->setHeader('Access-Control-Allow-Credentials', 'true');
|
||||
$request->setHeader('Vary', 'Origin');
|
||||
}
|
||||
|
||||
if($request->getMethod() === 'OPTIONS')
|
||||
return 204;
|
||||
|
||||
if(!UserSession::hasCurrent())
|
||||
return ['ok' => false];
|
||||
|
||||
$session = UserSession::getCurrent();
|
||||
$user = $session->getUser();
|
||||
$token = AuthToken::create($user, $session);
|
||||
|
||||
return [
|
||||
'ok' => true,
|
||||
'usr' => $user->getId(),
|
||||
'tkn' => $token->pack(),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue