refactor: clean code
This commit is contained in:
@ -75,7 +75,7 @@ public class AuthController(IOptionsSnapshot<Admin> user, IOptionsSnapshot<Gener
|
|||||||
|
|
||||||
if (userId != null)
|
if (userId != null)
|
||||||
{
|
{
|
||||||
userEntity.OAuthProviders ??= new Dictionary<OAuthProvider, OAuthUser>();
|
userEntity.OAuthProviders ??= [];
|
||||||
|
|
||||||
if (!userEntity.OAuthProviders.TryAdd(provider, oAuthUser))
|
if (!userEntity.OAuthProviders.TryAdd(provider, oAuthUser))
|
||||||
{
|
{
|
||||||
@ -105,7 +105,7 @@ public class AuthController(IOptionsSnapshot<Admin> user, IOptionsSnapshot<Gener
|
|||||||
TwoFactorAuthenticator = userEntity.TwoFactorAuthenticator,
|
TwoFactorAuthenticator = userEntity.TwoFactorAuthenticator,
|
||||||
SecondFactorToken = userEntity.Secret,
|
SecondFactorToken = userEntity.Secret,
|
||||||
OAuthProviders = userEntity.OAuthProviders
|
OAuthProviders = userEntity.OAuthProviders
|
||||||
}, provider);
|
});
|
||||||
|
|
||||||
title = "Успешный вход в аккаунт.";
|
title = "Успешный вход в аккаунт.";
|
||||||
message = "Вы успешно вошли в свою учетную запись. Добро пожаловать!";
|
message = "Вы успешно вошли в свою учетную запись. Добро пожаловать!";
|
||||||
@ -152,7 +152,7 @@ public class AuthController(IOptionsSnapshot<Admin> user, IOptionsSnapshot<Gener
|
|||||||
[MaintenanceModeIgnore]
|
[MaintenanceModeIgnore]
|
||||||
public ActionResult<List<AvailableOAuthProvidersResponse>> AvailableProviders() =>
|
public ActionResult<List<AvailableOAuthProvidersResponse>> AvailableProviders() =>
|
||||||
Ok(oAuthService
|
Ok(oAuthService
|
||||||
.GetAvailableProviders(HttpContext, HttpContext.GetApiUrl(Url.Action("AuthorizeOAuth2")!))
|
.GetAvailableProviders(HttpContext.GetApiUrl(Url.Action("AuthorizeOAuth2")!))
|
||||||
.ConvertToDto());
|
.ConvertToDto());
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -107,7 +107,7 @@ public class AuthService(ICacheService cache, IAccessToken accessTokenService, I
|
|||||||
authToken.Fingerprint);
|
authToken.Fingerprint);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<TwoFactorAuthenticator> LoginOAuthAsync(CookieOptionsParameters cookieOptions, HttpContext context, User user, OAuthProvider provider, CancellationToken cancellation = default)
|
public async Task<TwoFactorAuthenticator> LoginOAuthAsync(CookieOptionsParameters cookieOptions, HttpContext context, User user, CancellationToken cancellation = default)
|
||||||
{
|
{
|
||||||
var requestContext = new RequestContextInfo(context, cookieOptions);
|
var requestContext = new RequestContextInfo(context, cookieOptions);
|
||||||
|
|
||||||
|
@ -108,9 +108,9 @@ public class OAuthService(ILogger<OAuthService> logger, Dictionary<OAuthProvider
|
|||||||
|
|
||||||
public Uri GetProviderRedirect(HttpContext context, CookieOptionsParameters cookieOptions, string redirectUri, OAuthProvider provider)
|
public Uri GetProviderRedirect(HttpContext context, CookieOptionsParameters cookieOptions, string redirectUri, OAuthProvider provider)
|
||||||
{
|
{
|
||||||
var providerData = providers[provider];
|
var (clientId, _) = providers[provider];
|
||||||
|
|
||||||
var redirectUrl = $"?client_id={providerData.ClientId}" +
|
var redirectUrl = $"?client_id={clientId}" +
|
||||||
"&response_type=code" +
|
"&response_type=code" +
|
||||||
$"&redirect_uri={redirectUri}" +
|
$"&redirect_uri={redirectUri}" +
|
||||||
$"&scope={ProviderData[provider].Scope}" +
|
$"&scope={ProviderData[provider].Scope}" +
|
||||||
@ -121,10 +121,9 @@ public class OAuthService(ILogger<OAuthService> logger, Dictionary<OAuthProvider
|
|||||||
return new Uri(ProviderData[provider].RedirectUrl + redirectUrl);
|
return new Uri(ProviderData[provider].RedirectUrl + redirectUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
public (OAuthProvider Provider, Uri Redirect)[] GetAvailableProviders(HttpContext context, string redirectUri)
|
public (OAuthProvider Provider, Uri Redirect)[] GetAvailableProviders(string redirectUri)
|
||||||
{
|
{
|
||||||
return providers.Select(x => (x.Key, new Uri(redirectUri.TrimEnd('/') + "/?provider=" + (int)x.Key)))
|
return [.. providers.Select(x => (x.Key, new Uri(redirectUri.TrimEnd('/') + "/?provider=" + (int)x.Key)))];
|
||||||
.ToArray();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<(OAuthProvider provider, OAuthUser User)> LoginOAuth(HttpContext context, CookieOptionsParameters cookieOptions, string redirectUrl, string code, string state, CancellationToken cancellation = default)
|
public async Task<(OAuthProvider provider, OAuthUser User)> LoginOAuth(HttpContext context, CookieOptionsParameters cookieOptions, string redirectUrl, string code, string state, CancellationToken cancellation = default)
|
||||||
|
Reference in New Issue
Block a user