رفع خطای Bearer error=invalid_token
سلام خدمت دوستان
در یک پروژه Web Api سیستم احرازهویت JWT Token را فعال کردم ولی زمانی که از طریق Postman میخوام به یک متد Authorize شده دسترسی داشته باشم خطای invalid token برمیگرده. میشه راهنمایی کنید که اشکال ازکجاست؟
اطلاعات فایل appsettings.json
"Authentication": {
"Key": "Yh2k7QSu4l8CZg5p6X3Pna9L0Miy4D3Bvt0JVr87UcOj69Kqw 5R2Nmf4FWs03Hdx",
"Issuer": "Server",
"Audience": "Client"
},
فعالسازی سرویس در فایل Program
builder.Services.AddAuthentication(JwtBearerDefaul ts.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.IncludeErrorDetails = true;
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = builder.Configuration["Authentication:Issuer"],
ValidAudience = builder.Configuration["Authentication:Audience"],
IssuerSigningKey = new SymmetricSecurityKey(
Encoding.UTF8.GetBytes(builder.Configuration["Authentication:Key"])),
};
});
متد تولید Token
public IActionResult Login([FromBody] User user)
{
var claims = new[]
{
new Claim(JwtRegisteredClaimNames.Name, user.Username),
new Claim(ClaimTypes.UserData, user.Username),
new Claim(ClaimTypes.Role,"Admin"),
};
var securityKey = new SymmetricSecurityKey(
Encoding.ASCII.GetBytes(_configuration["Authentication:Key"]));
var signingCredentials = new SigningCredentials(
securityKey,
SecurityAlgorithms.HmacSha256);
var jwtSecurityToken = new JwtSecurityToken(
_configuration["Authentication:Issuer"],
_configuration["Authentication:Audience"],
claims,
DateTime.Now,
DateTime.Now.AddHours(1),
signingCredentials
);
var token = new JwtSecurityTokenHandler().WriteToken(jwtSecurityTo ken);
return Ok(token);
}
نقل قول: رفع خطای Bearer error=invalid_token
مشکل رو پیدا کردم
من پکیج زیر رو نصب کرده بودم:
Microsoft.IdentityModel.JsonWebTokens
پکیج زیر رو نصبب کردم درست شد:
System.IdentityModel.Tokens.Jwt
نقل قول: رفع خطای Bearer error=invalid_token
فقط یک سوال برام پیش اومده: اگر Token را در سایت jwt.io وارد کنم اطلاعات مربوط به نوع hash و داده های بخش Claims رو هم براحتی نمایش میده. چطور میشه بخش Payload را هم کدگذاری کرد؟