WebAPI.QuickNet
1.1.3
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package WebAPI.QuickNet --version 1.1.3
NuGet\Install-Package WebAPI.QuickNet -Version 1.1.3
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="WebAPI.QuickNet" Version="1.1.3" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add WebAPI.QuickNet --version 1.1.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: WebAPI.QuickNet, 1.1.3"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install WebAPI.QuickNet as a Cake Addin #addin nuget:?package=WebAPI.QuickNet&version=1.1.3 // Install WebAPI.QuickNet as a Cake Tool #tool nuget:?package=WebAPI.QuickNet&version=1.1.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
using NLog;
using NLog.Web;
using WebAPI.QuickNet.Web.Core;
using WebAPI.QuickNet.Web.Core.Extends;
using WebAPI.QuickNet.Web.Core.Models;
using WebAPI.Test.Controllers;
var logger = LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger();
try
{
var builder = WebApplication.CreateBuilder(args);
builder.InjectRun(options =>
{
//配置JWT验证
options.JwtOptions = new QuickJwtOptions
{
//JWT验证签发者
ValidIssuer = "QuickNet",
//JWT验证接收者
ValidAudience = "QuickNet.Client",
//JWT签名密钥
IssuerSigningKey = "This is a signature string with a length of 256",
//自定义单点登录验证
SingleSignOnValidator = new SingleSignOnValidator()
{
ErrorMessage = "哦豁,你的账号在别的地方登录了哦",
Validate = (ctx) =>
{
//获取令牌的签发时间
var issueTime = ctx.GetTokenIssueTime();
//返回false则代表当前令牌为失效状态(即便token尚在有效期内,您可以自行更改此处的逻辑,比如通过缓存是否存在的方式判断等。)
return issueTime > DateTime.Now.AddMinutes(-5);
}
},
//自定义JWT验证成功处理
OnTokenValidated = (c) =>
{
logger.Info($"{c.Scheme.Name} JWT token authentication succeeded!");
},
//自定义JWT验证失败处理
OnChallenge = (c) =>
{
logger.Error($"{c.Scheme.Name} JWT token validation failed!");
},
};
//限流配置
options.ThrottleOptions = new QuickThrottleOptions
{
//redis配置
RedisOption = new QuickThrottleRedisOption
{
Host = "localhost",
Port = 6379,
Password = "3333",
Database = 0,
},
//redis key前缀
KeyPrefix = "QuickNet",
//获取用户唯一标识,用于限流,只有 Policy.UserIdentity 才会生效
OnUserIdentity = (httpContext) =>
{
var loginProfile = httpContext.LoginProfile<UserInfo>();
return loginProfile?.UserId.ToString();
},
};
//自定义异常类型,继承该类型的异常将会被直接返回给客户端
options.BaseCustomErrorType = typeof(AbsCustomError);
},
(services) =>
{
//注入你的自定义服务
// services.AddTransient<IYouCustomerServer, YouCustomerServer>();
},
app =>
{
//注册控制器
app.Urls.Add("https://0.0.0.0:7086");
app.Urls.Add("http://0.0.0.0:5259");
}
);
}
catch (Exception exception)
{
logger.Error(exception, $"The program terminated abnormally...{exception.Message}");
throw;
}
finally
{
NLog.LogManager.Shutdown();
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
- Dnc.Api.Throttle (>= 1.2.1)
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 6.0.27)
- Microsoft.AspNetCore.Mvc.NewtonsoftJson (>= 6.0.27)
- NLog (>= 5.2.8)
- NLog.Web.AspNetCore (>= 5.3.8)
- Swashbuckle.AspNetCore (>= 6.5.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.