我刚刚阅读有关JWT的信息,以加密用户的某些个人数据,以便可以安全地传递给其他API。
var payload = new Dictionary<string, object>()
{
{"email", "test@test.com"},
{"phone", "9878987899"}
};
var encoded = JWT.JsonWebToken.Encode(payload, "secret", JwtHashAlgorithm.HS512);
Console.WriteLine(encoded); //prints encoded payload
现在我可以解码令牌,如下所示
var decoded = JWT.JsonWebToken.Decode(encoded, "", verify:false); // no security key
Console.WriteLine(decoded);
上面的代码解码令牌并返回加密的json有效负载。如果您观察到我没有通过secret key
,但仍然可以解码令牌。
我通过了verify:false
以上。现在,如果我将其设置为true
,则说明Signature is Invalid
失败。这是预期的行为。
我的问题是,security key
如果有人可以通过设置verify:false
解码令牌,目的是什么?