Example #1
0
        public static void AddTokenBasedAuthentication(this IServiceCollection services, IConfiguration configuration)
        {
            var tokenOption = new TokenConfigOption();

            configuration.GetSection("TokenOption").Bind(tokenOption);

            System.Console.WriteLine(tokenOption);


            services.AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultScheme             = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddJwtBearer(options =>
            {
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuer           = true,
                    ValidateAudience         = true,
                    ValidateLifetime         = true,
                    ValidateIssuerSigningKey = true,
                    ValidIssuer      = tokenOption.Issuer,
                    ValidAudience    = tokenOption.Audience,
                    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(tokenOption.SecretKey))
                };
            });
        }
Example #2
0
 public AccountController
     (UserManager <IdentityUser> userManager, SignInManager <IdentityUser> signInManager,
     RoleManager <IdentityRole> roleManager, IOptions <TokenConfigOption> tokenOptions)
 {
     this.userManager   = userManager;
     this.signInManager = signInManager;
     this.tokenOptions  = tokenOptions.Value;
     this.roleManager   = roleManager;
 }
Example #3
0
        public static string Create(TokenConfigOption option, string name, IEnumerable <string> userRoles, IEnumerable <Claim> userClaims, int expireHours = 1)
        {
            var signingCredential = GetSigningCreadential(option.SecretKey);
            var claims            = GetClaims(name, userRoles, userClaims);
            var expireOn          = DateTime.Now.AddHours(expireHours);
            var token             = GenerateToken(option.Issuer, option.Audience, claims, signingCredential, expireOn);

            return(token);
        }