Я реализовал phpCAS в качестве сервис-провайдера в своем приложении, работающем под управлением Laravel 5.1. Каждая отдельная страница в моем приложении должна быть авторизована, поэтому я создал функцию Helper, которая аутентифицируется с помощью phpCAS в моем основном файле app.blade.php. Функция Helper аутентифицирует, а затем извлекает информацию о пользователе из моей базы данных, чтобы я мог получить свойства пользователя (id, fullName и т. Д.)
Вот вспомогательная функция:
public static function full_authenticate() {
Cas::authenticate();
$username = Cas::getCurrentUser();
$userinfo = Users::where('username', '=', $username)->first();
return $userinfo;
if (!is_null($userinfo)) {
return "ERROR." //THIS DOES NOT WORK
} else {
return View::share('userinfo', $userinfo);
}
}
Вот как это используется в app.blade.php (как пример)
{{ Helpers::full_authenticate()->fullname }}
Аутентификация работает отлично, и если вы используете модель «Пользователи», она без проблем загрузит вашу информацию. У меня возникает проблема, когда вы успешно проходите аутентификацию в CAS, но не в таблице «Пользователи», я хочу иметь возможность выдать ошибку 403 или перенаправить в другое представление или просто сказать какое-то сообщение, но независимо от того, что я поставил в разделе «возврат» он не работает. Я думаю, что это как-то связано с моей вспомогательной функцией, работающей за контроллером, но я понятия не имею.
Также рассматривал возможность интеграции CAS в промежуточное программное обеспечение, но не знал, как этого добиться.
Любые идеи будут потрясающими! Заранее спасибо!
Задача ещё не решена.
Других решений пока нет …