angular - 社交登录 - 权限
问题描述
我有一个关于角度样板和社交登录方式的问题。根据我收集的信息,我们可以绕过“AuthConfigurer.cs”中定义的默认授权,例如。
`if (bool.Parse(configuration["Authentication:JwtBearer:IsEnabled"]))
{
services.AddAuthentication(options => {
options.DefaultAuthenticateScheme = "JwtBearer";
options.DefaultChallengeScheme = "JwtBearer";
}).AddJwtBearer("JwtBearer", options => .........
{`
然后当我们尝试登录时,我们使用用户名和密码验证用户,以便我们可以返回带有不记名令牌和用户 ID 的结果模型。
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 之类的东西,然后我们对用户进行身份验证,接下来该怎么办?
我们如何将各种页面的权限放在这个经过身份验证的“用户”上?
我们可以在没有具有权限的真实样板用户的情况下设置授权吗?如果可以,那该怎么办?我们如何访问我们网站的部分内容?