Я пытаюсь интегрировать наш SSO (решение для единого входа) в старое приложение laravel и после обновления до 5.1.26. Я хочу попробовать решение ACL но столкнулся с проблемой. Я добавил базовую возможность попробовать это, но он не работает, и я хочу помочь решить его.Проблема с функцией Gate с управлением сторонними пользователями в Laravel 5.1.26+
<?php
namespace App\Providers;
use Auth;
use Illuminate\Contracts\Auth\Access\Gate as GateContract;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
class AuthServiceProvider extends ServiceProvider
{
public function boot(GateContract $gate){
$this->registerPolicies($gate);
$gate->define('create-report', function ($userRoles) {
return in_array('super_admin', $userRoles);
});
}
public function register()
{
//
}
}
И я стараюсь это с
if(\Illuminate\Support\Facades\Gate::allows('create-report', $roles)){
dd("This never happens");
} else {
dd("This always happen!");
}
Нужно ли мне "протоколирует пользователю"? Поскольку у нас есть наша центральная система пользователя mgmt, я никогда не обрабатываю ни одного пользователя в приложении. У меня есть только пользовательский объект (извлеченный из sso api), сохраненный в переменной сеанса.
Как мне авторизоваться? –
Хорошо, что это отдельный вопрос из вашего вопроса. Существуют разные способы сделать это. http://laravel.com/docs/5.1/authentication – lagbox