refine log in
This commit is contained in:
parent
7b8704680d
commit
b35f0e6536
|
|
@ -6,6 +6,6 @@ public interface IUserService
|
|||
{
|
||||
Task<User> GetUser(string id);
|
||||
Task<User> CreateUser(User user);
|
||||
Task<Token> GetToken(string authorization);
|
||||
Task<Token?> GetToken(string authorization);
|
||||
Task<User> GetMyProfile();
|
||||
}
|
||||
|
|
@ -1,4 +1,3 @@
|
|||
using BotSharp.Abstraction.Repositories;
|
||||
using BotSharp.Abstraction.Users.Models;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.IdentityModel.Tokens;
|
||||
|
|
@ -60,7 +59,7 @@ public class UserService : IUserService
|
|||
return record;
|
||||
}
|
||||
|
||||
public async Task<Token> GetToken(string authorization)
|
||||
public async Task<Token?> GetToken(string authorization)
|
||||
{
|
||||
var base64 = Encoding.UTF8.GetString(Convert.FromBase64String(authorization));
|
||||
var (id, password) = base64.SplitAsTuple(":");
|
||||
|
|
@ -72,13 +71,14 @@ public class UserService : IUserService
|
|||
record = db.GetUserByUserName(id);
|
||||
}
|
||||
|
||||
User? user = null;
|
||||
var hooks = _services.GetServices<IAuthenticationHook>();
|
||||
if (record == null || record.Source != "internal")
|
||||
{
|
||||
// check 3rd party user
|
||||
foreach (var hook in hooks)
|
||||
{
|
||||
var user = await hook.Authenticate(id, password);
|
||||
user = await hook.Authenticate(id, password);
|
||||
if (user == null)
|
||||
{
|
||||
continue;
|
||||
|
|
@ -109,7 +109,7 @@ public class UserService : IUserService
|
|||
}
|
||||
}
|
||||
|
||||
if (record == null)
|
||||
if ((!hooks.IsNullOrEmpty() && user == null) || record == null)
|
||||
{
|
||||
return default;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue