10

私は Laravel 4 フレームワークと PHP の初心者です。

現在、クライアント アプリケーションとサーバーの間で簡単な認証プロセスを実行しようとしています。

以下は私の計画されたアプローチです:

  1. クライアントは、ユーザー名とパスワードを使用して GET 要求を介してサーバーにログインします。

  2. サーバーは検証を行い、成功した場合はトークン文字列を返します。トークン文字列は、ユーザー名、パスワード、および有効期限でエンコード (ハッシュ化) されます。

  3. クライアントは、指定されたトークンを含むリクエストを送信します。サーバーはトークンを検証します (トークンをデコード -> ユーザー名/パスワードと有効期限を確認します)。成功した場合、クライアントのリクエストを処理します。

上記のパラメーターを指定してトークンを生成し、サーバー側でデコードする最良の方法は何ですか?

ありがとうございました。お時間とご協力に感謝いたします。

4

2 に答える 2

11

ある種のトークンにエンコードされたユーザー名とパスワードを保存するのは良い考えではないと思います。代わりに、ログインが成功した後にランダムなトークンを生成し、トークンに関連するデータをサーバー側に保存します。

各ログインに関するレコードを、列tokenuser_id、のテーブルに保存できますvalid_until。各リクエストの後、データベースでトークンを探し、それがまだ有効かどうかを確認しuser_id、認証に使用します。

トークンをワンタイム ユーザーとパスワードと考えることができます。たとえば、トークンの最初の 8 文字を一時的なユーザー名と考え、残りをパスワードと考えてください。パスワードなしでアクセスを許可することに不安がある場合:)

また、cron ジョブを実行して、期限切れのレコードをデータベースから毎日程度削除することもできます。

于 2013-09-18T10:16:09.677 に答える