社交登录-权限

时间:2018-10-26 07:41:42

标签: angular aspnetboilerplate

我对角度样板和社交登录的实现方式有疑问。从我收集到的信息中,我们可以绕过例如在“ 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之类的东西,然后我们对用户进行身份验证,那么接下来该怎么办?

我们如何在此经过身份验证的“用户”上为各个页面设置权限?

我们可以在没有拥有权限的真实样板用户的情况下设置授权吗?我们如何访问我们网站的一部分?

0 个答案:

没有答案