C# 在ASP Net核心API中持久化身份验证令牌?
就像标题所说的,我有一个web应用程序/api,它需要来自SpotifyAPI的身份验证,这将返回一个AuthCode,然后我将其交换为令牌。当前,当返回令牌时,我将其保存在一个静态类中,这样我就可以在该类的任何方法中使用它-下面是一个类似的伪代码C# 在ASP Net核心API中持久化身份验证令牌?,c#,C#,就像标题所说的,我有一个web应用程序/api,它需要来自SpotifyAPI的身份验证,这将返回一个AuthCode,然后我将其交换为令牌。当前,当返回令牌时,我将其保存在一个静态类中,这样我就可以在该类的任何方法中使用它-下面是一个类似的伪代码 class ApiClass { public index(){ //Authenticate with spotify } public callback(string code){ To
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上使用滑动过期。如果我理解正确的话,这将在用户每次与网站交互时不断重置到期日,这就是您希望实现的目标吗?如果需要在特定时间过期,也可以根据需要更改绝对过期。