在静态字段中保存JWT令牌是最佳做法?

时间:2016-04-22 07:43:28

标签: authentication jwt

在静态字段中保存KeyForHmacSha256TokenIssuerTokenAudienceTokenLifetimeMinutes是最佳做法,或从配置文件中读取这些值。

public class SecurityConstants
{
    public static readonly byte[] KeyForHmacSha256 = new byte[64];

    public static readonly string TokenIssuer = string.Empty;

    public static readonly string TokenAudience = string.Empty;

    public static readonly double TokenLifetimeMinutes = 1;

    static SecurityConstants()
    {
        RNGCryptoServiceProvider cryptoProvider = new RNGCryptoServiceProvider();
        cryptoProvider.GetNonZeroBytes(KeyForHmacSha256);   

        TokenIssuer = "issuer"; 

        TokenAudience = "http://localhost:90";  
    }
}

1 个答案:

答案 0 :(得分:0)

与任何事情一样,答案是“这取决于。”

我肯定会认为KeyForHmacSha256变量是从配置文件或环境变量中提取的,只是为了让它不受源代码控制。

就个人而言,我通常会动态地吸引发行人和受众。发布者是从环境中撤出的,因此我不必在每个部署中手动设置它,并且受众是由谁请求令牌决定的。

令牌生命周期最适合作为静态定义。如果您需要将其设置为动态,则需要对其进行处理,但明确设置它不是安全问题。