💬

Rails ランダムな n 桁の数値からなる認証コードを生成する

2024/03/06に公開

よくあるメールや SMS で認証コードを送信する処理を作成しています。
指定した桁数からランダムに生成された数値からなる認証コードを生成する部分について備忘録としてまとめます。

結論

  • SecureRandom.random_number をつかいます

SecureRandom.random_number をつかいます

SecureRandom.random_number の引数に、任意の桁数の数値を指定して、数値を生成します。桁数に満たない場合は、0埋めします。

n = 6 # 指定桁数
verification_code = SecureRandom.random_number(10 ** n).to_s.rjust(n, '0')

random_number の引数に1以上の整数 n を与えれば、0以上 n 未満の数値を返してくれるので、10 の n 乗を引数に与えればよいです。

参考

https://docs.ruby-lang.org/ja/latest/class/SecureRandom.html

Discussion