У меня вопрос по поводу углового шаблона и способов реализации социальных логинов.Из того, что я собрал, мы можем обойти авторизацию по умолчанию, которая определена в "AuthConfigurer.cs", например.
`if (bool.Parse(configuration["Authentication:JwtBearer:IsEnabled"]))
{
services.AddAuthentication(options => {
options.DefaultAuthenticateScheme = "JwtBearer";
options.DefaultChallengeScheme = "JwtBearer";
}).AddJwtBearer("JwtBearer", options => .........
{`
и затем, когда мы пытаемся войти в систему, мы проверяем пользователя с помощью имени пользователя и пароля, чтобы мы могли вернуть модель результата с токеном на предъявителя и идентификатором пользователя.
public async Task<AuthenticateResultModel> Authenticate([FromBody] AuthenticateModel model)
{
var loginResult = await GetLoginResultAsync(
model.UserNameOrEmailAddress,
model.Password,
GetTenancyNameOrNull()
);
var accessToken = CreateAccessToken(CreateJwtClaims(loginResult.Identity));
return new AuthenticateResultModel
{
AccessToken = accessToken,
EncryptedAccessToken = GetEncrpyedAccessToken(accessToken),
ExpireInSeconds = (int)_configuration.Expiration.TotalSeconds,
UserId = loginResult.User.Id
};
}
Кажетсядовольно просто, но, глядя на примеры и предложения, которые я нашел на форумах, мы можем использовать многочисленные способы обработки аутентификации, например.
if (bool.Parse(configuration["Authentication:Microsoft:IsEnabled"]))
services.AddAuthentication().AddGoogle(googleOptions =>
{
microsoftOptions.ClientId = configuration["Authentication:Microsoft:ClientId"];
microsoftOptions.ClientSecret = configuration["Authentication:Microsoft:ClientSecret"];
});
Так что моя реальная проблема, или, скорее, моя проблема, заключается в том, если мы обойдем токен носителя и изменимэто что-то вроде Microsoft, и мы аутентифицируем пользователя, что дальше?
Как мы можем предоставить разрешение для различных страниц этому аутентифицированному "пользователю"?
Можем ли мы настроить авторизацию без реального шаблонапользователь, у которого есть разрешения, и если да, то что тогда?Как мы можем получить доступ к частям нашего сайта?