1

我在运行 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 集成到中间件中,但不知道如何实现。

任何想法都会很棒!提前致谢!

4

0 回答 0