forked from gongxuegit/tiku-backend.net
feat: add local authentication
This commit is contained in:
@@ -1,19 +0,0 @@
|
||||
using Microsoft.IdentityModel.Tokens;
|
||||
using System.Text;
|
||||
|
||||
namespace Tiku.Api.Options;
|
||||
|
||||
public sealed class JwtOptions
|
||||
{
|
||||
public string Issuer { get; set; } = "tiku-backend";
|
||||
public string Audience { get; set; } = "tiku-api";
|
||||
public string SigningKey { get; set; } = "development-only-tiku-signing-key-change-before-production";
|
||||
public int AccessTokenMinutes { get; set; } = 30;
|
||||
public int RefreshTokenDays { get; set; } = 30;
|
||||
|
||||
public SymmetricSecurityKey CreateSecurityKey()
|
||||
{
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(SigningKey);
|
||||
return new SymmetricSecurityKey(Encoding.UTF8.GetBytes(SigningKey));
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
||||
using Microsoft.IdentityModel.Tokens;
|
||||
using Scalar.AspNetCore;
|
||||
using System.Text;
|
||||
using Tiku.Api.Middleware;
|
||||
using Tiku.Api.Options;
|
||||
using Tiku.Api.Security;
|
||||
using Tiku.Application;
|
||||
using Tiku.Application.Security;
|
||||
@@ -38,7 +38,7 @@ builder.Services
|
||||
ValidateAudience = true,
|
||||
ValidAudience = jwtOptions.Audience,
|
||||
ValidateIssuerSigningKey = true,
|
||||
IssuerSigningKey = jwtOptions.CreateSecurityKey(),
|
||||
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtOptions.SigningKey)),
|
||||
ValidateLifetime = true,
|
||||
ClockSkew = TimeSpan.FromMinutes(1)
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user