я работаю с пакетом:
https://github.com/lucadegasperi/oauth2-server-laravel
Я хочу переопределить функцию "getResourceOwnerId ()" внутри https://github.com/lucadegasperi/oauth2-server-laravel/blob/master/src/Authorizer.php
Поэтому мне нужно переопределить функцию и добавить в класс новую функцию «getAccessToken_custom», например:
public function getResourceOwnerId()
{
$check = $this->getAccessToken_custom();
if ($check != 0){
return $this->getAccessToken()->getSession()->getOwnerId();
}else{
return 0;
}
}
public function getAccessToken_custom(){
$accessToken = $this->getChecker()->getAccessToken();
if (is_null($accessToken)) {
return 0;
}else{
return $accessToken;
}
//return $accessToken;
}
Я вызываю функцию из своего промежуточного программного обеспечения следующим образом:
use LucaDegasperi\OAuth2Server\Facades\Authorizer;
public function handle($request, Closure $next)
{
// Return user ID or return 0
$user_id = Authorizer::getResourceOwnerId();
if ($user_id == 0){
return $next($request);
}else{
$user=\App\User::find($user_id);
Auth::login($user);
return $next($request);
}
}
Можете ли вы помочь мне узнать, как переопределить поставщика функций? так что я могу вернуть свои собственные значения. Спасибо вам, ребята!






Вы можете создать Authorizer.php в папке своего приложения и поместить этот код
namespace app;
class Authorizer extends \LucaDegasperi\OAuth2Server\Authorizer
{
public static function getResourceOwnerId()
{
//your code
}
}
В промежуточном программном обеспечении используйте свой Authorizer
use app\Authorizer;
public function handle($request, Closure $next){}