Added automatic token refresh feature and login page
This commit is contained in:
@@ -15,7 +15,7 @@ public class AuthorizedFilter : IAuthorizationFilter {
|
||||
public void OnAuthorization(AuthorizationFilterContext context) {
|
||||
if (context.Filters.Any(item => item is IAllowAnonymousFilter)) return;
|
||||
|
||||
if (context.HttpContext.User.Identity?.IsAuthenticated == false) {
|
||||
if (string.IsNullOrEmpty(context.HttpContext.User.GetAccessTokenId())) {
|
||||
context.Result = new UnauthorizedResult();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -5,11 +5,11 @@ using Microsoft.AspNetCore.Http;
|
||||
namespace HopFrame.Security.Claims;
|
||||
|
||||
internal class TokenContextImplementor<TDbContext>(IHttpContextAccessor accessor, TDbContext context) : ITokenContext where TDbContext : HopDbContextBase {
|
||||
public bool IsAuthenticated => accessor.HttpContext?.User.Identity?.IsAuthenticated == true;
|
||||
public bool IsAuthenticated => !string.IsNullOrEmpty(accessor.HttpContext?.User.GetAccessTokenId());
|
||||
|
||||
public User User => context.Users
|
||||
.SingleOrDefault(user => user.Id == accessor.HttpContext.User.GetUserId())?
|
||||
.ToUserModel(context);
|
||||
|
||||
public Guid AccessToken => Guid.Parse(accessor.HttpContext?.User.GetAccessTokenId() ?? string.Empty);
|
||||
public Guid AccessToken => Guid.Parse(accessor.HttpContext?.User.GetAccessTokenId() ?? Guid.Empty.ToString());
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace HopFrame.Security.Models;
|
||||
|
||||
public struct UserLogin {
|
||||
public class UserLogin {
|
||||
public string Email { get; set; }
|
||||
public string Password { get; set; }
|
||||
}
|
||||
@@ -26,6 +26,6 @@ public interface IPermissionService {
|
||||
|
||||
Task DeletePermission(Permission permission);
|
||||
|
||||
internal Task<string[]> GetFullPermissions(string user);
|
||||
Task<string[]> GetFullPermissions(string user);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user