JWTを生成/解析するときのsecret keyの生成方法
JWTについて調べてる。golangでちょっと使いたい用途があったので。
golang には JWT生成/解析するライブラリが結構あって、jwt-go
ってのが有名みたい。
func createTokenString(data *User, secretkey string) (string,error) { token := jwt.NewWithClaims(jwt.SigningMethodHS256, data) return token.SignedString([]byte(secretkey)) }
こんな感じでトークンが生成できるんだけど、secretkey
の部分に何を入れたらいいんだろう?ってなってた。
railsの例を見ると、configハッシュのsecret_key_baseキーに入っている値を渡してるみたい。 値はランダムな文字列のようだ。
それはどうやって生成されてるかっていうと、rake secret
みたいなコマンドを打つと生成できるようだ。でも、どういうアルゴリズムで生成されているかわからない。
とおもったら、以下に答えが。というかソースが。
んで、secure random golang とかで検索すると、まんまの答えがqiitaに上がってた。
ということで、これを使わせてもらって、めでたくセキュアにJWTのデータを生成・解析できるようになりました。
めでたし、めでたし。