質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

FuelPHP

FuelPHPは、軽量高速で開発が可能なPHPのWebアプリケーションフレームワークです。

Q&A

1回答

696閲覧

FuelPHP 自動ログイン

earnest_gay

総合スコア615

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

FuelPHP

FuelPHPは、軽量高速で開発が可能なPHPのWebアプリケーションフレームワークです。

0グッド

0クリップ

投稿2018/04/01 12:23

fuelphpで用意されているメソッドの説明が曖昧すぎて自動ログインで悩んでいます。

自動ログインについて以下のような文献があります。

http://fuelphp.jp/docs/1.8/packages/auth/simpleauth/usage.html#/method_force_login

force_login($user_ids = '') force_login メソッドは強制的なログインリクエストを扱います。ユーザ id が手元にあり パスワードがわかっていないときに自動ログインさせるために利用できます。「ログイン状態を保持する」機能として利用できます。 静的 No パラメータ パラメータ 規定値 説明 $user_id 必須 ログインさせたいユーザの id 返り値 論理型。ログインに成功すれば true を、そうでなければ false を返す。

http://fuelphp.jp/docs/1.8/packages/auth/simpleauth/usage.html#/method_remember_me

remember_me メソッドは、 remember_me クッキーを設定することができます。 $user_id が指定されていない場合は、現在ログインしているユーザーが使用されます。 静的 はい パラメータ パラメータ デフォルト パラメータ $user_id null 記憶するユーザーの id 返り値 boolean。正しく remember me クッキーが設定されていれば true を、 user_id が存在しないか remember_me 機能が設定で無効になっている場合 false が返されます。 例 // ログインフォームの POST を処理し、必要に応じて remember-me クッキーを設定 if (\Input::method() == 'POST') { // 資格情報を検査 if (\Auth::instance()->login(\Input::param('username'), \Input::param('password'))) { // ユーザーを覚えてほしい? if (\Input::param('rememberme', false)) { // remember-me クッキーを作成 \Auth::remember_me(); } else { // 存在する場合、 remember-me クッキーを削除 \Auth::dont_remember_me(); } // ログインしホームページに移動 \Response::redirect('/'); } else { // ログイン失敗、エラーメッセージを表示 $data['username'] = \Input::param('username'); $data['login_error'] = \Lang::get('login.failure'); } }

多分使い方としてこういうことなのかと、、、時系列で説明します。

・ログイン成功したらAuth::remember_me()でcookieに保存して、ログインしたユーザーIDもcookieに保存。
・$_COOKIE['auto_login']と$_COOKIE['user_id']とする。
・ブラウザを閉じる。
・ブラウザ開いてサイトにアクセス。
・この時、システムは、Auth::remember_me()で保存されたはずのcookie($_COOKIE['auto_login'])があれば、ユーザーID($_COOKIE['user_id'])を使ってforce_login($user_ids = '')を実行する。
・結果的に自動的にログインできる。

ということだと思うのですが、これではかなり問題があるように思えます。

force_loginメソッドはパスワードが不明でもユーザーIDさえわかってればログインできる仕様なので、ユーザーID1の人がユーザーID5とかに書き換えたらログインできてしまうということになります。

fuelphpで自動ログインするには自作するしかないでしょうか。
私の認識がおかしいのか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

FuelPHP 自動ログインでぐぐるといいとおもいますねー

投稿2019/03/18 01:45

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問