aboutsummaryrefslogtreecommitdiff
path: root/BackEnd/Timeline/Services/User
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-03-23 21:30:14 +0800
committercrupest <crupest@outlook.com>2022-03-23 21:30:31 +0800
commitda9139b7bab95f6e5ba5f4bb2d99011c2d6db03a (patch)
tree051fd4ca4bc511db7e04b019a33fddaab2d0cc6b /BackEnd/Timeline/Services/User
parent3d6c9fd916e18c99b3a5497b8313672680571b5e (diff)
downloadtimeline-da9139b7bab95f6e5ba5f4bb2d99011c2d6db03a.tar.gz
timeline-da9139b7bab95f6e5ba5f4bb2d99011c2d6db03a.tar.bz2
timeline-da9139b7bab95f6e5ba5f4bb2d99011c2d6db03a.zip
Diffstat (limited to 'BackEnd/Timeline/Services/User')
-rw-r--r--BackEnd/Timeline/Services/User/CreateTokenResult.cs12
-rw-r--r--BackEnd/Timeline/Services/User/UserService.cs15
2 files changed, 25 insertions, 2 deletions
diff --git a/BackEnd/Timeline/Services/User/CreateTokenResult.cs b/BackEnd/Timeline/Services/User/CreateTokenResult.cs
new file mode 100644
index 00000000..b71a9e9e
--- /dev/null
+++ b/BackEnd/Timeline/Services/User/CreateTokenResult.cs
@@ -0,0 +1,12 @@
+using System;
+using Timeline.Entities;
+
+namespace Timeline.Services.User
+{
+ public class CreateTokenResult
+ {
+ public string Token { get; set; } = default!;
+ public UserEntity User { get; set; } = default!;
+ }
+}
+
diff --git a/BackEnd/Timeline/Services/User/UserService.cs b/BackEnd/Timeline/Services/User/UserService.cs
index a47bc860..1ad74bec 100644
--- a/BackEnd/Timeline/Services/User/UserService.cs
+++ b/BackEnd/Timeline/Services/User/UserService.cs
@@ -7,7 +7,8 @@ using System.Linq;
using System.Threading.Tasks;
using Timeline.Entities;
using Timeline.Models.Validation;
-
+using Timeline.Services.Token;
+
namespace Timeline.Services.User
{
public class UserService : BasicUserService, IUserService
@@ -19,14 +20,17 @@ namespace Timeline.Services.User
private readonly IPasswordService _passwordService;
+ private readonly IUserTokenService _userTokenService;
+
private readonly UsernameValidator _usernameValidator = new UsernameValidator();
private readonly NicknameValidator _nicknameValidator = new NicknameValidator();
- public UserService(ILogger<UserService> logger, DatabaseContext databaseContext, IPasswordService passwordService, IClock clock) : base(databaseContext)
+ public UserService(ILogger<UserService> logger, DatabaseContext databaseContext, IPasswordService passwordService, IUserTokenService userTokenService, IClock clock) : base(databaseContext)
{
_logger = logger;
_databaseContext = databaseContext;
_passwordService = passwordService;
+ _userTokenService = userTokenService;
_clock = clock;
}
@@ -162,6 +166,11 @@ namespace Timeline.Services.User
await _databaseContext.SaveChangesAsync();
_logger.LogInformation(Resource.LogUserModified, entity.Username, id);
+
+ if (password is not null)
+ {
+ await _userTokenService.RevokeAllTokenByUserIdAsync(id);
+ }
}
return entity;
@@ -214,6 +223,8 @@ namespace Timeline.Services.User
entity.Version += 1;
await _databaseContext.SaveChangesAsync();
_logger.LogInformation(Resource.LogChangePassowrd, entity.Username, id);
+
+ await _userTokenService.RevokeAllTokenByUserIdAsync(id);
}
}
}