Python3.6でセキュアなトークンを用意する

 Webアプリで認証機能を自作実装するにはセキュアなトークンが欠かせない。欠かせないんだけどPythonでは標準ではないライブラリを使ってトークンを得ていたので不便だった。

 Python3.5以前では、StackOverFlowを参考にして下記のようにトークンを得ていた。
How do I generate a cryptographically secure alphanumeric string in Python?
from Crypto.Random import random


def generate_auth_token():
""" Generate a 32-char alnum string. 190 bits of entropy. """
alnum = ''.join(c for c in map(chr, range(256)) if c.isalnum())
return ''.join(random.choice(alnum) for _ in range(32))


 Python3.6にはsecretsというライブラリが入り、hexやバイナリなど各種でトークンを作成できる。便利そう。
secrets — Generate secure random numbers for managing secrets
comment: 0