FastEndpoints中AddAuthenticationJwtBearer与CreateToken的密钥是否需一致?
FastEndpoints中JWT签名密钥的一致性与作用解析
签名密钥是否需要一致?
必须完全一致,否则JWT认证会直接失败。
两者各自的作用
AddAuthenticationJwtBearer()中的SigningKey:
这是给ASP.NET Core认证系统配置JWT Bearer验证规则的核心参数。当服务端收到客户端携带的JWT令牌时,会用这个密钥校验令牌的签名有效性——确保令牌未被篡改、确实由本服务端签发。如果此处密钥与生成令牌时的密钥不匹配,验证环节会直接判定令牌无效,拒绝请求。JwtBearer.CreateToken()中的SigningKey:
这个密钥用于对生成的JWT令牌进行签名。用户登录成功后,服务端用该密钥为令牌添加唯一签名,客户端拿到令牌后,后续请求都会携带它。签名的作用是防止令牌在传输过程中被篡改,保证令牌的真实性。
比如代码示例中,如果AddAuthenticationJwtBearer用的是"The secret used to sign tokens",而CreateToken用的是"A secret token signing key",客户端拿到的令牌在后续请求时,服务端验证签名会因不匹配直接返回401未授权。
内容的提问来源于stack exchange,提问作者Roman Yagodin
相关产品推荐
相关产品推荐

