WINDIIテック現役フリーランスエンジニアが運営するテックメディア。it本記事では、ブログ投稿システムを作りながらLaravelの認可機能の実装の仕方をわかりやすく解説していきます。以下の記事の続きです。読んでいない方はぜひご一読ください!Laravelのシーティング(Seeding)機能をマスターしよう!本記事では、Laravelのシーディング(Seeding)機能の使い方をわかりやすく解説していきます。以下の記事の続きです。読んでいない方はぜひご一読ください!初心者の方でもLaravelの動作環境を簡単に作れるWINDIIオリジナルのソースコードを用意したので、実際に動...初心者の方でもLaravelの動作環境を簡単に作れるWINDIIオリジナルのソースコードを用意したので、実際に動かして学ぶとより深く理解できるようになります!以下の記事を参考にご活用ください。Laravelを簡単に動かせるスターターキットを作成しました!Laravelを簡単に動かせるスターターキットを作成しました?当サイトでLaravelの動作を説明するときなど積極的に使っていきます!GitHubのレポジトリはこちらから使い方Git、Dockerがすでに入っていることを前提とします。認可ってなに?認可とは、ある条件を元にリソースに対する特定のアクション権限を許可することです。わかりにくいと思うので、例えば、ブログ投稿システムの例で考えてみましょう。このように、Aさん、Bさん、そしてAさんが投稿した記事(リソース)があります。Aさんの投稿をAさんが編集したり、削除したりするのは自由ですが、Bさんが勝手に編集したり、削除するのはまずいです。そこで、編集や削除の権限をアプリケーションで制御する必要があるというわけです。認可を実装するには、Laravelのポリシーという機能を使います。以下のコマンドを実行してポリシーを作成しましょう。--model=Article実行すると、app/Policies/ArticlePolicy.phpというファイルが作成されます。中身を見ると以下のようになっています。ポリシーを登録します。}}ポリシーを定義するポリシーが登録できたら、認可するアクションごとにメソッドを定義します。今回の例ですと、認証されたUserがArticleの更新をできるかどうか決めるために、ArticlePolicyのupdateメソッドを定義します。認証ユーザのidに一致することが条件です。これでポリシーの定義ができました。アクションを認可する次に、定義したポリシーを元に認可してみましょう。app/Http/Controllers/ArticleController.phpを開いて以下を追加します。}書き終えたら、ログインユーザの所有していない投稿を編集しようとしてみてください。先ほど、他の人の投稿を編集できないようにしましたが、そもそも、他の人の投稿に対しては編集ボタンを出さないようにしましょう。開いて以下のようにしましょう。</div>@endsectionポイントは@canという命令を使って、認可制御しているところです。囲まれている部分は、ユーザに編集権限がある場合のみ出力されます。編集権限がない投稿を開くと以下のように、編集ボタンが表示されなくなります。最新の記事ririWINDII(ウィンディ)は、フリーランスエンジニアが運営するテックメディアです。Slackで無料コミュニティも運営しています。たくさんのエンジニアが参加していて、プログラミングの相談や雑談などをしている楽しいコミュニティなので、興味ある方はぜひお気軽にご参加ください。(全て見る)Canvaが最高すぎる。)この記事へのコメントはありません。この記事へのトラックバックはありません。URL返信をキャンセルする。