2017-04-01 4 views
1

私はログインスクリプトに取り組んでおり、これまでより多くのセキュリティを確保しようとしています。私はちょうどuniqid()のハッシュを保存する前に、それをユーザーログイン時のセッションとして保存しました。今私は、UIDを作成するには、次の関数を使用していますが、少し過度のかもしれないと思う。 64文字の文字列を返します。ユーザー一意のIDを生成するベスト/標準的な方法はありますか?

private function _createUid() { 
    $bytes = random_bytes(32); 
    $uid = bin2hex($bytes); 

    return $uid; 
} 

ここで私の質問は、ログイン一意のID /トークンを保存する標準的な方法は何ですか?私はそれはまったく別の話ですが、典​​型的なログインと私はUIDとして保存する必要があるので、覚えている私に言及していないよ。

ご協力いただきありがとうございます!

+0

JWTトークンは、検証にデータベースへのアクセスが不要で、いつでも期限切れになる可能性があるため、セッションを保存する優れた方法だと思います。あなたは本当にあなたが正確に達成しようとしていることは述べていません。これらのIDはクライアントまたはサーバーを確認するためにサーバーに送信されますか? –

+0

それは必ずしも心配を引き起こすはずの文字列の長さではありません。一意性と検証とを組み合わせることは良い方法です。あなたは、サーバー側に格納されている何かに対してセッション値をチェックする必要があります。例えば。各要求のデータベースエントリ。ルークが指摘したJWTは、優れた認証方法です。 JWTを使用しても、各リクエストでjsonトークンに付加する値を確認できます。 – Yolo

+0

セッションIDを既に持っているので、これは必要ありません。 – Narf

答えて

0

私が使っていたものをそのまま使用しました。ユーザーIDはさまざまな方法で生成でき、どちらの方法も正しいとは思われません。

関連する問題