我在运行 Laravel 5.1 的应用程序中将 phpCAS 实现为服务提供程序。我的应用程序中的每个页面都需要授权,因此我创建了一个 Helper 函数,该函数在我的主 app.blade.php 文件上使用 phpCAS 进行身份验证。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 集成到中间件中,但不知道如何实现。
任何想法都会很棒!提前致谢!