現在、Node.jsとExpressを学習しており、spotify-web-api-nodeなどの外部ライブラリを使用せずにSpotify Web APIを照会する単純なアプリケーションを構築したいと考えていました。私のコードはhttps://pastebin.com/Jwe8sckJにあります。Expressルート以外でSpotifyアクセストークンを使用する方法
私の "/ callback"ルートは以下のようになります。
app.get("/callback", function(req, res){
res.send("OK!")
var authCode = req.query.code
var options = { method: 'POST',
url: 'https://accounts.spotify.com/api/token',
headers: { 'content-type': 'application/x-www-form-urlencoded' },
form:
{ grant_type: 'authorization_code',
code: authCode,
redirect_uri: 'https://example.com/callback',
client_id: clientId,
client_secret: clientSecret } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
var accessToken = JSON.parse(body).access_token;
var refreshToken = JSON.parse(body).refresh_token
console.log("Access Token: " + accessToken);
console.log("Refresh Token: " + refreshToken);
});
});
これまでのところすべて正常に動作していますが、アクセストークンとリフレッシュトークンを取得できます。私が混乱している部分は、 "/コールバック"ルートの外でこれらのトークンをどのように使用するのかです。あるいは、変数をグローバルにどのように保存すればよいかという別の問いかけがあります。私がそれをしたら、それはスクリプトの新しいセッションに影響を与えますか?
アクセストークンをユーザーのブラウザにクッキーとして保存するとどうなりますか?これらのクッキーは1人のユーザーに限定され、プライベートユーザーデータを収集するために使用する可能性があります – Dan
上記のライブラリを使用してセッションを作成すると、バックグラウンドでCookieが作成されます。クライアントはIDを持つクッキーを保存し、各リクエストと共にサーバーに送信します。サーバーはそのCookieのIDを使用してクライアントを認識できます。 –