예제 #1
0
        private async Task AttachAccount(HttpContext context, JwtDbContext dataContext, string token)
        {
            try
            {
                var tokenHandler = new JwtSecurityTokenHandler();
                var key          = Encoding.ASCII.GetBytes(_config.GetSection("JwtKey").Value);

                tokenHandler.ValidateToken(token, new TokenValidationParameters
                {
                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey         = new SymmetricSecurityKey(key),
                    ValidateIssuer           = false,
                    ValidateAudience         = false,
                    //Set ClockKew = 0 để thông báo token đã hết hạn
                    ClockSkew = TimeSpan.Zero
                }, out SecurityToken validatedToken);
                var jwtToken = (JwtSecurityToken)validatedToken;

                int.TryParse(jwtToken.Claims.First(x => x.Type == "id").Value, out int accountId);

                var id = await dataContext.Users.FindAsync(accountId);

                if (String.Equals(JWTHelpers.ValidateJwtToken(token, key), id.Id.ToString()))
                {
                    context.Items["Account"] = await dataContext.Users.FindAsync(accountId);
                }
            }
            catch
            {
                //do nothing
            }
        }
예제 #2
0
        public async Task Invoke(HttpContext context, JwtDbContext dataContext)
        {
            var token = context.Request.Headers["Authorization"].FirstOrDefault()?.Split(" ").Last();

            if (token != null)
            {
                await AttachAccount(context, dataContext, token);
            }
            await _next(context);
        }
예제 #3
0
        public IActionResult Index()
        {
            if (!env.IsDevelopment())
            {
                var errorResult = new ResultModel <string>("Not authorized", ResultCode.Error);
                return(Json(errorResult));
            }

            using (var context = new JwtDbContext())
            {
                new JwtDbContextSeeder(context).Seed(addNewUser, confirmUserEmail, addNewApp, addNewUserApps);
            }

            return(Json("Database seeded"));
        }
예제 #4
0
 public AppUserService(JwtDbContext dbContext)
 {
     _dbContext = dbContext;
 }
예제 #5
0
 public UserInfoesController(JwtDbContext context)
 {
     _context = context;
 }
 public UserRepository(JwtDbContext ctx) : base(ctx)
 {
     _ctx = ctx;
 }
예제 #7
0
 public UserRepository(JwtDbContext dbContext)
 {
     _dbContext = dbContext;
     _dbContext.Database.EnsureCreated();
 }
예제 #8
0
 public ValuesController(JwtDbContext context)
 {
     _context = context;
 }
예제 #9
0
 public GenericRepository(JwtDbContext ctx)
 {
     _ctx = ctx;
 }
예제 #10
0
 public ProductsController(JwtDbContext context)
 {
     _context = context;
 }
예제 #11
0
 public AppClaimService(JwtDbContext dbContext)
 {
     _dbContext = dbContext;
 }
 public WeatherForecastController(ILogger <WeatherForecastController> logger, IConfiguration config, JwtDbContext db)
 {
     _logger = logger;
     _config = config;
     _db     = db;
 }
예제 #13
0
 public JwtDbContextSeeder(JwtDbContext context)
 {
     this.context = context;
 }
예제 #14
0
 public TokenController(IConfiguration configuration, JwtDbContext context)
 {
     _configuration = configuration;
     _context       = context;
 }
예제 #15
0
        // Kullanici adi, parola ve Originator kullanilarak bir sms paketi olusturulur.



        public PersonService(JwtDbContext dbContext, IAuthService authService, IAppUserService appUserService)
        {
            _dbContext      = dbContext;
            _authService    = authService;
            _appUserService = appUserService;
        }