Node.js 如何在快速路线之外使用Spotify访问令牌

Node.js 如何在快速路线之外使用Spotify访问令牌,node.js,express,spotify,Node.js,Express,Spotify,我目前正在学习Node.js和Express,希望构建一个简单的应用程序,在不使用外部库(例如)的情况下查询Spotify Web API。我的代码可在 我的“/回调”路径如下所示 app.get("/callback", function(req, res){ res.send("OK!") var authCode = req.query.code var options = { method: 'POST', url: 'https://accounts

我目前正在学习Node.js和Express,希望构建一个简单的应用程序,在不使用外部库(例如)的情况下查询Spotify Web API。我的代码可在

我的“/回调”路径如下所示

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);
    });

});

到目前为止,一切正常,我能够获得一个访问令牌和一个刷新令牌。我感到困惑的是,我现在如何在“/callback”路由之外使用这些令牌?或者另一种提问方式是如何全局保存变量。如果我这样做,它会对脚本的新会话产生任何影响吗?

如果我没弄错,那么您希望保存访问令牌以供以后使用。您可以声明全局变量,以后可以使用它

global.spotify_access_token = '';
在任何文件的开头声明此变量。现在,您可以使用此变量在回调中保存访问令牌。如下所示:

spotify_access_token = JSON.parse(body).access_token;
希望这对你有帮助


谢谢。

最常见的解决方案是将这些令牌存储在数据库(即MySQL)中,并在需要时检索它们。您可能希望使用设置每个客户端接收的令牌


您甚至可以在会话中保存令牌,但请注意会话是不稳定的。

将访问令牌作为cookie存储在用户浏览器中如何?这些cookie仅针对1个用户,可能用于收集私人用户数据使用上述库创建会话在后台为您创建cookie。客户机存储一个带有ID的cookie,并将其与每个请求一起发送到服务器。然后,服务器可以使用cookie的ID来识别客户端。