1
0
Fork 0
mirror of synced 2024-06-01 18:39:57 +12:00

Added mock OAuth server

This commit is contained in:
Eldad Fux 2020-01-13 14:23:45 +02:00
parent 2f125196e4
commit 8b8d311135

View file

@ -6,6 +6,7 @@ use Utopia\Validator\Numeric;
use Utopia\Validator\Text;
use Utopia\Validator\ArrayList;
use Storage\Validators\File;
use Utopia\Validator\Host;
$result = [];
@ -218,6 +219,73 @@ $utopia->get('/v1/mock/tests/general/empty')
}
);
$utopia->get('/v1/mock/tests/general/oauth/login')
->desc('Mock an OAuth login route')
->label('scope', 'public')
->label('sdk.namespace', 'general')
->label('sdk.method', 'empty')
->label('sdk.description', 'Mock an OAuth login route')
->param('client_id', '', function () { return new Text(100); }, 'OAuth Client ID.')
->param('redirect_uri', '', function () { return new Host(['http://localhost']); }, 'OAuth Redirect URI.')
->param('scope', '', function () { return new Text(100); }, 'OAuth scope list.')
->param('state', '', function () { return new Text(100); }, 'OAuth state.')
->action(
function ($clientId, $redirectURI, $scope, $state) use ($response) {
var_dump($clientId, $redirectURI, $scope, $state);
exit();
$response->redirect('');
}
);
$utopia->get('/v1/mock/tests/general/oauth/token')
->desc('Mock an OAuth login route')
->label('scope', 'public')
->label('sdk.namespace', 'general')
->label('sdk.method', 'empty')
->label('sdk.description', 'Mock an OAuth login route')
->param('client_id', '', function () { return new Text(100); }, 'OAuth Client ID.')
->param('redirect_uri', '', function () { return new Host(['http://localhost']); }, 'OAuth Redirect URI.')
->param('client_secret', '', function () { return new Text(100); }, 'OAuth scope list.')
->param('code', '', function () { return new Text(100); }, 'OAuth state.')
->action(
function ($clientId, $redirectURI, $clientSecret, $code) use ($response) {
if($clientId != '1') {
throw new Exception('Invalid client ID');
}
if($clientSecret != 'secret') {
throw new Exception('Invalid client secret');
}
if($code != 'abcdef') {
throw new Exception('Invalid token');
}
$response->json(['access_token' => '123456']);
}
);
$utopia->get('/v1/mock/tests/general/oauth/user')
->desc('Mock an OAuth user route')
->label('scope', 'public')
->label('sdk.namespace', 'general')
->label('sdk.method', 'empty')
->label('sdk.description', 'Mock an OAuth user route')
->param('token', '', function () { return new Text(100); }, 'OAuth Access Token.')
->action(
function ($token) use ($response) {
if($token != '123456') {
throw new Exception('Invalid token');
}
$response->json([
'id' => 1,
'name' => 'User Name',
'email' => 'user@localhost',
]);
}
);
$utopia->shutdown(function() use ($response, $request, &$result, $utopia) {
$route = $utopia->match($request);