C# 在ASP Net核心API中持久化身份验证令牌?

C# 在ASP Net核心API中持久化身份验证令牌?,c#,C#,就像标题所说的,我有一个web应用程序/api,它需要来自SpotifyAPI的身份验证,这将返回一个AuthCode,然后我将其交换为令牌。当前,当返回令牌时,我将其保存在一个静态类中,这样我就可以在该类的任何方法中使用它-下面是一个类似的伪代码 class ApiClass { public index(){ //Authenticate with spotify } public callback(string code){ To

就像标题所说的,我有一个web应用程序/api,它需要来自SpotifyAPI的身份验证,这将返回一个AuthCode,然后我将其交换为令牌。当前,当返回令牌时,我将其保存在一个静态类中,这样我就可以在该类的任何方法中使用它-下面是一个类似的伪代码

class ApiClass {

    public index(){
        //Authenticate with spotify
    }

    public callback(string code){
        Token token = auth.exchangeToken(code);
        StaticClass.Token = token;
    }

    public getData(){
        return SpotifyApiCall(StaticClass.token);
    }
}
我无法想象拥有一个静态类是处理这些事情的最佳方式。需要注意的是,当每个新用户访问页面时,他们必须进行身份验证。。这意味着当数据完成时,我必须清除令牌?只是为了让另一个用户不使用相同的令牌并获取前一个用户的数据,对吗


我不是在寻找代码,而是在寻找存储持久令牌的正确方法

您可以将您的令牌存储在
客户端上(cookie,以标题形式发送),并实现授权属性,该属性将从请求中解密您的令牌,然后检查权限,在
后端
上,它可以存储在持久性存储(NoSQL、SQL DB)上.

通常,您将令牌存储在客户端,存储系统会处理到期等问题,通常,每次您将存储的令牌传递给api时,api都会在内部调用spotify进行身份验证/授权,不要以静态方式编写类,而是以单例方式注入。我将使用.net成员身份验证,然后您可以在cookie上使用滑动过期。如果我理解正确的话,这将在用户每次与网站交互时不断重置到期日,这就是您希望实现的目标吗?如果需要在特定时间过期,也可以根据需要更改绝对过期。