localStorage に accessToken を保存していることについて
以下の参考ページを読んでいたところ、
https://auth0.com/learn/json-web-tokens/
JWTの取り扱いについて
You also should not store sensitive session data in browser storage due to lack of security.
と言う記述があり、 kt3k/buttons では localStorage に保存していたので気になりました。
https://github.com/kt3k/buttons/blob/376a16ca354aa3f02388126b0ae10dfa46c5c97d/frontend/util/web-auth.js#L24
念のため見ていただけると幸いですm(__)m
そうですね, httpOnly cookie などに入れた方が良いですね. XSS があった場合に localStorage だと取られてしまうので
↓を読んでたら、そもそも JWT を(バックエンド等のサーバー保護のための)認証として使うことは、意図したものではないようで、新しい @auth0/auth0-spa-js では利用できないようになってました。
https://community.auth0.com/t/getting-the-jwt-id-token-from-auth0-spa-js/28281
提供された別な accessToken を、以下のようなAPIを使って subject claim を取得する感じだと思います。 https://auth0.com/docs/api/authentication#get-user-info
結構ハマったので共有までに置いておきます 🙇
昔は auth0 のチュートリアルでも localStorage に入れていた気がしますが, JWT に対する議論が色々あって変わったのかもしれないですね.
(コード検索すると上のとほぼ同じことやってるコードがたくさんあります. https://github.com/search?q=localStorage+setItem+access_token+auth0-js&type=Code
そういうことだったんですね、、欲しい情報を見つけるのに苦労しました・・。