使用 MERN 堆栈使用 Spotify Web API 持久登录

Persistent Login with Spotify Web API using MERN stack

所以我有一个使用 MERN 堆栈的网络应用程序,它包含一个用户数据库,允许人们注册和登录帐户。我想集成 Spotify API,但我希望用户只需连接到 Spotify 一次。

我想要它,以便用户登录时可以选择连接到 Spotify,然后一旦他们通过身份验证,它就会显示一些信息。我在想也许我需要制作一个不同的页面并设置

if (userIsLoggedIntoSpotify){
   <Link to="/newpage"></Link>
}

我也想要它,这样如果用户在另一台计算机上登录应用程序并且他们已经通过身份验证,他们就不必再次进行身份验证。

我目前有一个用户可以注册、登录和注销的应用程序,我有一个有效的 Spotify 身份验证 link,我只需要一种方法来判断用户是否已经过身份验证,如果是,则可以自动将它们发送到一个新页面,该页面已设置 Spotify API 并显示数据。

最好的方法是在您当前的用户设置中使用 Authorization Code Flow。您的应用需要将 Spotify 数据(access_tokenrefresh_token)保存到您的数据库中。一种方法是用户必须首先使用您的应用程序创建一个帐户,然后他们才能将他们的 Spotify 帐户连接到您的应用程序。这样您就可以在用户对象上保存 access_tokenrefresh_token 以备后用。

当用户稍后登录或在不同的设备上登录时,您的应用程序将从您的应用程序数据库中获取 access_tokenrefresh_token 来执行您需要的任何操作。需要注意的是,access_token 每 60 分钟过期一次,因此您需要 refresh_token 来请求新的 access_token。当用户稍后登录时,需要检查access_token是否过期。