42 lines
1.3 KiB
PHP
42 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace okapi\services\oauth\authorize;
|
|
|
|
use okapi\Okapi;
|
|
use okapi\Settings;
|
|
use okapi\OkapiRedirectResponse;
|
|
use okapi\OkapiRequest;
|
|
use okapi\ParamMissing;
|
|
use okapi\InvalidParam;
|
|
|
|
class WebService
|
|
{
|
|
public static function options()
|
|
{
|
|
return array(
|
|
'min_auth_level' => 0
|
|
);
|
|
}
|
|
|
|
public static function call(OkapiRequest $request)
|
|
{
|
|
$token_key = $request->get_parameter('oauth_token');
|
|
if (!$token_key)
|
|
throw new ParamMissing("oauth_token");
|
|
$langpref = $request->get_parameter('langpref');
|
|
$interactivity = $request->get_parameter('interactivity');
|
|
if (!$interactivity) $interactivity = 'minimal';
|
|
if (!in_array($interactivity, array('minimal', 'confirm_user')))
|
|
throw new InvalidParam('interactivity', $interactivity);
|
|
|
|
# Redirect to the "apps" folder. This is done there (not here)
|
|
# because: 1) we don't want any cookie or session-handling
|
|
# done in the "services" folder. 2) "services" don't display
|
|
# any interactive webpages, they just return the result.
|
|
|
|
return new OkapiRedirectResponse(Settings::get('SITE_URL')."okapi/apps/authorize".
|
|
"?oauth_token=".$token_key.(($langpref != null) ? "&langpref=".$langpref : "").
|
|
"&interactivity=".$interactivity);
|
|
}
|
|
}
|