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 をミドルウェアに統合することも検討しましたが、それを追求する方法がわかりません。
どんなアイデアも素晴らしいでしょう!前もって感謝します!