『Codeigniter』の認証管理にアノテーションを利用してみた

『Codeigniter』の認証管理にアノテーションを利用してみた

ソフトバンク・au・ドコモの方は、公式のオンラインショップを利用すれば頭金不要で通常のショップよりお得に購入できます。

ショーケース・ティービーで展開するサービスを開発するために、PHPのフレームワーク『Codeigniter(読み:コードイグナイター)』を使うことになりました。
<参照:CodeIgniter『CodeIgniter Web Framework』(英語サイト)>

試行錯誤しながらなんとか完成にまで漕ぎ着けました。しかし……

  • コードが長い
  • 毎回判定(if)する書き方をしてしまいがちで、結果的に無駄が多い
  • コーディングミスやバグを出しやすい書き方をしてしまっている

私自身が経験不足であることは否めず、かなり荒い作りに……。精進します。。。

そんなことで少しばかり悩んでいた時に、同じ開発メンバーのプレゼンテーションの中で、ひょっとしたらこれら課題が解消できるかもしれない方法の紹介がありました。

これはもう実践あるのみ!
さっそく実装してみることにしました。

セキュリティモジュール『ci-security-module』とは!?

そのプレゼン内で紹介されたのは、『Codeigniter』でコメント内のアノテーションを利用したセキュリティモジュール『ci-security-module』でした。

この『ci-security-module』はユーザの認証状態や権限に応じて、アノテーションでルーティングを制御するというシンプルなもの。
そして、何と言ってもショーケース・ティービー謹製です!

Symfony」や「Laravel」といった他のフレームワークなどでは、既にセキュリティモジュールがあったりします。
しかし、『Codeigniter』にはセキュリティモジュールがなかったため、「じゃあ作ろっか」ということで作成されたものであります。

これは使わない手はありません。
管理画面が存在するショーケース・ティービーのサービス『仲介名人』で実施。
『ci-security-module』自体をオープンソースとしてモジュール化にしていたので、カンタンに使うことができました。
<参照:GitHub『ci-security-module』>

導入方法のご紹介

上でご紹介しているGitHub内にマニュアルも併記しております。
今回はその手順通りに進めてご紹介いたします。

■手順1

「composer.json」をダウンロードし、『Codeigniter』の「config.php」を以下のように変更します。

マニュアルどおりに進めてみましたが、いきなりエラーが発生w
どうやら自分の環境で利用するためには、以下のような書き方にしないとダメみたいですね。

■手順2

「hooks」も有効にしておきましょう。

■手順3

「application/config/hooks.php」に以下を追加します。

はい、これだけで導入準備は終わりです。
カンタンですね!

ソフトバンク・au・ドコモの方は、公式のオンラインショップを利用すれば頭金不要で通常のショップよりお得に購入できます。

【週刊bitWave】(メルマガ)始めました!

登録はこちらからメールアドレスを入力してお申込みください。

ご登録いただいたメールアドレスは 【週刊bitWave】の更新情報の配信にのみ使用します。

個人情報の取扱いに関しては、「プライバシーポリシー」をご確認ください。解除はいつでもこちらから行うことが可能です。

あなたにおすすめ

仮想環境で『Ansible』を使ってサーバ構築... 最近、サーバ構築を実施する必要がありました。 まずは仮想環境を作り、サーバ構築を……と思ったのですが、私はインフラ周りの経験が浅く、色々困ったことが頻出してしまいました。 今回の記事では、私と同じような “サーバ構築ビギナー” ...
内線電話用の番号検索|Slack APPで作ってみた... ショーケース・ティービーではメール誤送信防止という観点から、社内連絡ではチャットツールを使用しています。 現在使用しているツールは「HipChat」。 <bitWave関連記事『情報漏えいしないための決定打!”Hip Chat”』>...
Amazon EC2|Red Hat Linux 7.3で“Muninインストール“や“パッケージ導... ナマステ~! 私はナラヤンです! 今回が初投稿になるのですが、実はこれまで何度か本bitWave上でも登場していました。 <bitWave関連記事『おもてなしの企業の社員が、ネパール人をおもてなししてみた!』> <bitWave関...
継続的インテグレーションツール『Jenkins』を触ってみた... こんにちは。M.Sです。 現在、『Jenkins』からSeleniumを実行するお題に取り組んでいます。 『Jenkins』ってなに? 身近な継続的インテグレーションとは 『Jenkins』はjavaで実装されたオープンソー...