mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2025-12-06 17:23:26 +08:00
优化jwt首次无数据的异常。
This commit is contained in:
@@ -103,15 +103,23 @@ namespace CoreCms.Net.Auth
|
|||||||
{
|
{
|
||||||
OnMessageReceived = context =>
|
OnMessageReceived = context =>
|
||||||
{
|
{
|
||||||
var token = context.Request.Headers["Authorization"].ObjectToString().Replace("Bearer ", "");
|
try
|
||||||
if (string.IsNullOrEmpty(token))
|
|
||||||
{
|
{
|
||||||
context.Response.Headers.Append("Token-Error-Token", "authorization decryption failure!");
|
var token = context.Request.Headers["Authorization"].ObjectToString().Replace("Bearer ", "");
|
||||||
|
if (!string.IsNullOrEmpty(token.Trim()))
|
||||||
|
{
|
||||||
|
context.Token = EncryptProvider.AESDecrypt(token, AppSettingsConstVars.JwtConfigSecretKey);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
context.Response.Headers.Append("Token-Error-Token", "authorization decryption failure!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
catch
|
||||||
{
|
{
|
||||||
context.Token = EncryptProvider.AESDecrypt(token, AppSettingsConstVars.JwtConfigSecretKey);
|
context.Response.Headers.Append("Token-Error-Token", "authorization decryption failure ex!");
|
||||||
}
|
}
|
||||||
|
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
},
|
},
|
||||||
OnChallenge = context =>
|
OnChallenge = context =>
|
||||||
@@ -122,35 +130,48 @@ namespace CoreCms.Net.Auth
|
|||||||
OnAuthenticationFailed = context =>
|
OnAuthenticationFailed = context =>
|
||||||
{
|
{
|
||||||
var token = context.Request.Headers["Authorization"].ObjectToString().Replace("Bearer ", "");
|
var token = context.Request.Headers["Authorization"].ObjectToString().Replace("Bearer ", "");
|
||||||
if (string.IsNullOrEmpty(token))
|
if (!string.IsNullOrEmpty(token.Trim()))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//进行aes解密
|
||||||
|
var decodeToken = EncryptProvider.AESDecrypt(token, AppSettingsConstVars.JwtConfigSecretKey);
|
||||||
|
if (!string.IsNullOrEmpty(decodeToken))
|
||||||
|
{
|
||||||
|
var jwtToken = (new JwtSecurityTokenHandler()).ReadJwtToken(decodeToken);
|
||||||
|
|
||||||
|
if (jwtToken.Issuer != issuer)
|
||||||
|
{
|
||||||
|
context.Response.Headers.Append("Token-Error-Iss", "issuer is wrong!");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (jwtToken.Audiences.FirstOrDefault() != audience)
|
||||||
|
{
|
||||||
|
context.Response.Headers.Append("Token-Error-Aud", "Audience is wrong!");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果过期,则把<是否过期>添加到,返回头信息中
|
||||||
|
if (context.Exception.GetType() == typeof(SecurityTokenExpiredException))
|
||||||
|
{
|
||||||
|
context.Response.Headers.Append("Token-Expired", "true");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
context.Response.Headers.Append("Token-Error-Token", "token decryption failure!");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
context.Response.Headers.Append("Token-Error-Token", "token decryption failure ex!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
context.Response.Headers.Append("Token-Error-Token", "token is wrong!");
|
context.Response.Headers.Append("Token-Error-Token", "token is wrong!");
|
||||||
}
|
}
|
||||||
|
|
||||||
//进行aes解密
|
|
||||||
var decodeToken = EncryptProvider.AESDecrypt(token, AppSettingsConstVars.JwtConfigSecretKey);
|
|
||||||
if (string.IsNullOrEmpty(decodeToken))
|
|
||||||
{
|
|
||||||
context.Response.Headers.Append("Token-Error-Token", "token decryption failure!");
|
|
||||||
}
|
|
||||||
|
|
||||||
var jwtToken = (new JwtSecurityTokenHandler()).ReadJwtToken(decodeToken);
|
|
||||||
|
|
||||||
if (jwtToken.Issuer != issuer)
|
|
||||||
{
|
|
||||||
context.Response.Headers.Append("Token-Error-Iss", "issuer is wrong!");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (jwtToken.Audiences.FirstOrDefault() != audience)
|
|
||||||
{
|
|
||||||
context.Response.Headers.Append("Token-Error-Aud", "Audience is wrong!");
|
|
||||||
}
|
|
||||||
|
|
||||||
// 如果过期,则把<是否过期>添加到,返回头信息中
|
|
||||||
if (context.Exception.GetType() == typeof(SecurityTokenExpiredException))
|
|
||||||
{
|
|
||||||
context.Response.Headers.Append("Token-Expired", "true");
|
|
||||||
}
|
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -233,15 +254,23 @@ namespace CoreCms.Net.Auth
|
|||||||
{
|
{
|
||||||
OnMessageReceived = context =>
|
OnMessageReceived = context =>
|
||||||
{
|
{
|
||||||
var token = context.Request.Headers["Authorization"].ObjectToString().Replace("Bearer ", "");
|
try
|
||||||
if (string.IsNullOrEmpty(token))
|
|
||||||
{
|
{
|
||||||
context.Response.Headers.Append("Token-Error-Token", "authorization decryption failure!");
|
var token = context.Request.Headers["Authorization"].ObjectToString().Replace("Bearer ", "");
|
||||||
|
if (!string.IsNullOrEmpty(token.Trim()))
|
||||||
|
{
|
||||||
|
context.Token = EncryptProvider.AESDecrypt(token, AppSettingsConstVars.JwtConfigSecretKey);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
context.Response.Headers.Append("Token-Error-Token", "authorization decryption failure!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
catch
|
||||||
{
|
{
|
||||||
context.Token = EncryptProvider.AESDecrypt(token, AppSettingsConstVars.JwtConfigSecretKey);
|
context.Response.Headers.Append("Token-Error-Token", "authorization decryption failure ex!");
|
||||||
}
|
}
|
||||||
|
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
},
|
},
|
||||||
OnChallenge = context =>
|
OnChallenge = context =>
|
||||||
@@ -252,35 +281,48 @@ namespace CoreCms.Net.Auth
|
|||||||
OnAuthenticationFailed = context =>
|
OnAuthenticationFailed = context =>
|
||||||
{
|
{
|
||||||
var token = context.Request.Headers["Authorization"].ObjectToString().Replace("Bearer ", "");
|
var token = context.Request.Headers["Authorization"].ObjectToString().Replace("Bearer ", "");
|
||||||
if (string.IsNullOrEmpty(token))
|
if (!string.IsNullOrEmpty(token.Trim()))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//进行aes解密
|
||||||
|
var decodeToken = EncryptProvider.AESDecrypt(token, AppSettingsConstVars.JwtConfigSecretKey);
|
||||||
|
if (!string.IsNullOrEmpty(decodeToken))
|
||||||
|
{
|
||||||
|
var jwtToken = (new JwtSecurityTokenHandler()).ReadJwtToken(decodeToken);
|
||||||
|
|
||||||
|
if (jwtToken.Issuer != issuer)
|
||||||
|
{
|
||||||
|
context.Response.Headers.Append("Token-Error-Iss", "issuer is wrong!");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (jwtToken.Audiences.FirstOrDefault() != audience)
|
||||||
|
{
|
||||||
|
context.Response.Headers.Append("Token-Error-Aud", "Audience is wrong!");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果过期,则把<是否过期>添加到,返回头信息中
|
||||||
|
if (context.Exception.GetType() == typeof(SecurityTokenExpiredException))
|
||||||
|
{
|
||||||
|
context.Response.Headers.Append("Token-Expired", "true");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
context.Response.Headers.Append("Token-Error-Token", "token decryption failure!");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
context.Response.Headers.Append("Token-Error-Token", "token decryption failure ex!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
context.Response.Headers.Append("Token-Error-Token", "token is wrong!");
|
context.Response.Headers.Append("Token-Error-Token", "token is wrong!");
|
||||||
}
|
}
|
||||||
|
|
||||||
//进行aes解密
|
|
||||||
var decodeToken = EncryptProvider.AESDecrypt(token, AppSettingsConstVars.JwtConfigSecretKey);
|
|
||||||
if (string.IsNullOrEmpty(decodeToken))
|
|
||||||
{
|
|
||||||
context.Response.Headers.Append("Token-Error-Token", "token decryption failure!");
|
|
||||||
}
|
|
||||||
|
|
||||||
var jwtToken = (new JwtSecurityTokenHandler()).ReadJwtToken(decodeToken);
|
|
||||||
|
|
||||||
if (jwtToken.Issuer != issuer)
|
|
||||||
{
|
|
||||||
context.Response.Headers.Append("Token-Error-Iss", "issuer is wrong!");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (jwtToken.Audiences.FirstOrDefault() != audience)
|
|
||||||
{
|
|
||||||
context.Response.Headers.Append("Token-Error-Aud", "Audience is wrong!");
|
|
||||||
}
|
|
||||||
|
|
||||||
// 如果过期,则把<是否过期>添加到,返回头信息中
|
|
||||||
if (context.Exception.GetType() == typeof(SecurityTokenExpiredException))
|
|
||||||
{
|
|
||||||
context.Response.Headers.Append("Token-Expired", "true");
|
|
||||||
}
|
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user