1

Laravel 5.1 を実行しているアプリにサービス プロバイダーとして phpCAS を実装しました。アプリのすべてのページを承認する必要があるため、メインの app.blade.php ファイルで phpCAS で認証するヘルパー関数を作成しました。ヘルパー関数は認証を行い、データベースからユーザー情報を取得するので、ユーザー プロパティ (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 で正常に認証されたが、Users テーブルにない場合です。403 エラーをスローしたり、別のビューにリダイレクトしたり、何らかのメッセージを伝えたりしたいのですが、何を入れてもかまいません。 「返品」セクションでは、機能しません。コントローラーの背後で実行されているヘルパー関数と関係があると思いますが、わかりません。

CAS をミドルウェアに統合することも検討しましたが、それを追求する方法がわかりません。

どんなアイデアも素晴らしいでしょう!前もって感謝します!

4

0 に答える 0