現在ツイキャスAPIを使用したSPAのウェブサービスを開発しています。
ツイキャスAPIの使用には、ほとんどアクセストークンが必要で、ユーザーをツイキャスの許諾画面に飛ばして許可して貰う必要があります。
流れはこのような感じです。
(デプロイするドメインはLet's EncryptでSSL化してあります)
1.デベロッパーはアプリ登録をしてCLIENT_IDとCLIENT_SECRETを取得する。(このときにリダイレクトURLを指定する)
2.ユーザーにはツイキャス指定のURLへブラウザからアクセスさせて、まずはCODE(長い文字列)を取得する。
3.CLIENT_ID、CLIENT_SECRET、CODE、リダイレクトURLをHTTPヘッダに詰めてアクセストークン取得用URLにアクセス
4.アクセストークンが返るので、それを使用して各種APIを叩けるようになる
2の段階で、ユーザーにブラウザから許諾画面に飛んでもらうためにハイパーリンクを置きますが、CLIENT_IDがGETパラメータで必要なので、CLIENT_IDはクライアント側に平文で入ってます。
3ではCLIENT_SECRETを使う必要があるのでサーバーサイドでのアクセスになります。
4でアクセストークンが取得できるわけですが、このタイミングでuuidを生成してトークンとペアにしてデータベースに保存します。
そしてuuidをクライアントへ返し、LocalStorageに保存。
サイトにアクセスした際にuuidが保存されていればLocalStorageのuuidを使ってサーバー側でトークンを読み出して返します。
SPAなのでそのままクライアント側にアクセストークンを保持して、クライアント側からAPIを叩きます。
(LocalStorageを消されたらサーバーに到達できないトークンが残るので気持ち悪い・・・)
この手順を踏めばクライアント側にアクセストークンが載るのですが、これはセキュリティ的に大丈夫でしょうか?
また、全体的に見てセキュリティがまずいところがあれば指摘していただけると助かります。
よろしくお願いします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/08 11:30
2018/04/11 07:32
2018/04/11 10:21
2018/04/11 15:09