supilog環境構築からWEBアプリ開発・スマホアプリ開発まで。ときには動画制作やゲームも。Jetstreamを使ったことがないので、主に自分用のメモとして残します。https://jetstream.laravel.com/2.x/introduction.htmlgoogle翻訳様ありがとうございます。アプリケーションの出発点として最適です。API、およびオプションのチーム管理機能の実装を提供します。スタックから選択できます。各スタックは、アプリケーションを構築するための生産的で強力な開始点を提供します。選択するスタックは、好みのテンプレート言語によって異なります。Breezeと比べて、より高度は機能を有しているみたいですね。インストールしてみます。まとめインストール今回使用するLaravelのバージョンは9.5.2です。チーム管理オプションなども付けれるが、最初は混乱するので付けない。livewireDB接続がないと表示確認できないようなので、一旦DBをsqliteにして確認してみる。DB_PASSWORD=migrateして、アプリ確認してみます。serveBreezeで実装されているような基本機能はこれで、一通り揃っているみたい。ルートやコントローラを見てみるとファイルがないないんですね。ルートも追加されているのは、ダッシュボード画面のみ。app/Http/Controllers配下に追加されたファイルは0です。ここで公式ドキュメントをみてみると。コントローラーやルートをアプリケーションに公開しません。機能は「アクション」クラスを介してカスタマイズされます。プロセス中に、アクションがアプリケーションのapp/Actionsディレクトリに公開されます。https://jetstream.laravel.com/3.x/concept-overview.html#introduction一応1個だけでも追ってみますか。いうことで、/loginで表示されるログイン画面が表示されるまでの流れを追ってみる。AuthenticatedSessionController@createルートのファイルがないとはいえ、ルートの記述はどこかにあるはずだということで、この記述を探しまして、見つけました。長いので省略して表示しますが、こちらです。}...このファイルが呼ばれているのが、ここ。}...とりあえず、こいつらの記述によって、見えないルートが登録されているのだということが分かる。表示までの処理を追え!ルートは登録されたものとして向き先は、「AuthenticatedSessionController@create」。コントローラを見てみる。}んーと、サービスコンテナに登録されたLoginViewResponse::classを返却しているのでしょうか。LoginViewResponseクラスを見にいっても、インターフェスなので何も記述されていません。LoginViewResponse::classが登録されている箇所を探します。}引数の$viewを保存したSimpleViewResponseインスタンスをsingletonで登録している処理のようです。これが呼ばれているところを見てみます。}さらに、これが呼ばれているのが、ここ。$this->configureRoutes();...ということで、「JetstreamServiceProvider」によって、「Fortify::viewPrefix(‘auth.’);」がコールされていて、この処理で、auth.loginを含めた7画面がシングルトンのインスタンスとして、登録されており、アクセスした時に、SimpleViewResponseインスタンスのtoResponse内の処理でビューが返却されている流れのようです。特定の処理を削除したい場合は・・・コントローラーやルートを公開しないポリシーは良いとして、不要な機能を削除したい時はどうすれば良いか。ルートさえ消せれば良いので、JetstreamないしはFortifyのignoreRoutesを呼び出して、自分でルート設定を記述するという感じでしょうか。こんな感じで呼び出せば自動設定されていたルートは消えるはず。}...}ブラウザセッションダッシュボード画面にいって、プロフィール画面を開くと、自分のアカウントに紐付いたブラウザーセッションが表示される機能が付いています。必要に応じて特定のセッションを破棄したりできるんですね。2要素認証Jetstreamを試しているからには、絶対試しておきたいのは2要素認証機能。Authenticatorをスマホにインストールする事前準備として、インストールしておきます。Authenticatorで読み取ってみます。読み取ると、アプリ上に、コードが表示されるので、そのコードをWEBアプリ上の「Code欄」に入力します。成功すると、↓のような表示になります。この状態で、一度ログアウトし、再度ログインをしてみます。メールアドレスとパスワードを入力後、コード入力画面が表示されました。Authenticatorを開いて、現在表示されている6桁のコードを入力します。(コードは短時間で更新されます)無事にログインすることが確認できました!これは予想以上に何もしなくて良くてびっくり。まとめ今回は取り上げてませんが、API向けの軽量な認証システム、チーム管理という機能も特徴としてあげられていますので、機会があれば触れてみたいと思います。2要素認証を構築したい方は、ものすごく簡単に導入できると思います。導入してみてください。Author:SupiJava,PHPでWEBアプリ開発がメイン。iOSアプリも作成する。初学者の方のサポートにも力を入れています。ご相談などはお気軽にどうぞ。