1

これが状況です。2つのコードイグナイターのインストールをセットアップしました。

1 つはクライアントになり、もう 1 つは API になります。これのさらなる改善は、

  1. CI の機能を使用していなかったため、クライアントは CI から作成されなくなります。私は、mvc フレームワークから始めたかっただけです。

私の質問は、セッションをどこに保存すればよいですか? ログイン中。

以下は私がやった方法ですが、私はそれを間違っていたと思います。

  1. クライアントからログインを作成しました。これは、ログイン資格情報をAPIに送信し、クライアントから送信されたこれらの情報を検証し、ログイン資格情報が有効かどうかにかかわらず、メッセージ/応答を返します。

ログインの詳細が有効な場合、APIは次のようにコントローラーにセッションを設定します。

if(true) {
    $this->session->set_userdata($array);
}

これはlogin_controller私が作成した中にあります。これは、APIのクライアントのセッションを設定する適切な方法ですか?

4

1 に答える 1

1

あなたは正しい概念を持っています。ユーザーが提供した有効な資格情報を確認するときにのみ、セッション ユーザーデータを設定する必要があります。

ただし、暗号化された Cookie を使用していることを確認し、機密データを処理している場合は、セッション データをデータベースに保存してください。データベースに保存すると、CodeIgniter でのセッションの動作 (主に flashdata を使用) に奇妙な癖が生じますが、肯定的な識別による追加の利点は、それだけの価値がある可能性があります。

セッション データをデータベースに保存することで、ユーザーが本人であることを (セッション ID などで) より確実に検証できます。その理由は、セッション データがデータベースにのみ保存され、セッション cookie (セッション ID とその他の情報のみを保持する) には保存されないためです。そうすれば、誰かが Cookie を解読できたとしても、Cookie のみの方法でできるように、ユーザーデータを変更して他人になりすますことはできません。

于 2012-11-05T00:09:26.070 に答える