Loading...
LaravelPHP自作パッケージ

Laravel5 プライベートモードプラグイン

はじめに

Laravel5以上で、https://readouble.com/を一通り読んでいる方を対象にします。
特にミドルウェアの操作を必ず押さえている方! Lraravelでメンテナンスモードがあるけど、使い勝手が悪いときあるよね。
そこで、一部のIPアドレスの方、またはBASIC認証みたいにパスワード入力で一致した方をサイトに入れるようにするミドルウェアを作ってみた。

インストール

composer.phpへ追加。
"require": {
    "kaoken/laravel5-private-mode":"^0.1.3"
  },
このミドルウェアは、https://github.com/kaoken/laravel5-private-modeで公開してます。

設定

app\Http\Kernel.phpへ追加

    protected $middleware = [
        ...
        // 追加
        \Kaoken\Laravel5PrivateMode\PrivateModeMiddleware::class
    ],

.envへ追加:例

################################
################################
##
##  Private Mode Config
##
################################
################################
PRIVATE_MODE_VALID=true
PRIVATE_MODE_LOGIN_FORM=true
PRIVATE_MODE_IP=192.168.0.1/24,127.0.0.1
PRIVATE_MODE_PASSWORD=hoge-hoge
  • PRIVATE_SITE_VALID で、このミドルウェアの有効・無効を表す。
    • デフォルトで false
    • true の場合、有効
    • falseの場合、無効
  • PRIVATE_MODE_LOGIN_FORMは、ログインフォームの非表示を表す。
    • デフォルトで false
    • true の場合、ログインフォームが表示され、PRIVATE_MODE_PASSWORDのパスワードと一致した場合、 PRIVATE_SITE_SAFE_IP以外のIPでも、プライベートモードが無効化される。
  • PRIVATE_MODE_PASSWORD
    • デフォルトで、ランダムな文字列になる。
    • PRIVATE_MODE_LOGIN_FORMが、trueの場合使用する。
    • PRIVATE_MODE_LOGIN_FORMが、trueの場合使用する。
  • PRIVATE_SITE_SAFE_IPは、プライベートモードが無効化されるIPを追加する。
    • デフォルトで、192.168.0.1/24カンマで複数追加することができ、CIDRフォーマットまで対応している。

resources\viewsへ追加

このディレクトリ内のviews\private_modeをコピー&ペーストします。
  • private_mode
    • layouts
      • app.blade.php は、基本となるレイアウト
  • 503.blade.php は、PRIVATE_MODE_LOGIN_FORMfalseで、PRIVATE_SITE_SAFE_IPの対象外IPの呼び出される。
  • login.blade.phpは、PRIVATE_MODE_LOGIN_FORMtrueで、PRIVATE_SITE_SAFE_IPの対象外IPの呼び出される。

最後に

上記の手順で動作するので、ぜひお試しを!

コメントを残す

%d人のブロガーが「いいね」をつけました。