Q1トークンは一意で安全であるべきだと思います。これは一般的に簡単な問題ではありません。次の手順を実行します。
- 乱数を生成する
- DB(または他の共有ストレージ)に保存してみてください
- DB に既に存在する場合はステップ 1 に進みます。そうでない場合はステップ 4 に進みます
- トークンを送る
Ad.1。crypto.randomBytes
衝突を最小限に抑えるために、十分な大きさのsize
パラメータ (256 以上) を使用して乱数を生成するには:
http://nodejs.org/api/crypto.html#crypto_crypto_randombytes_size_callback
crypto.randomBytes
安全でなければなりません。ただし、いくつかの微妙な点があります。たとえば、マシンに十分なエントロピーがあることを確認する必要があります。サーバーにキーボード、マウス、またはマイクがない場合、問題になる可能性があります。ハードウェア エントロピー ジェネレーターはいつでも追加できます。
http://en.wikipedia.org/wiki/Hardware_random_number_generator
安全である必要がない場合は、crypto.pseudoRandomBytes
代わりに使用できます。
また、独自のアルゴリズムを作成して使用することもお勧めします (もちろんベースcrypto
)。たとえば、その番号に現在の日付を追加したり、ハッシュしたりします。やり過ぎないようにだけ気をつけてください。
また、古いトークンから DB を消去することについても覚えておいてください。
Q2特に問題ありません。あなたに合ったものは何でも。おそらく、クッキーに入れるのが最も簡単な解決策です。