コード例 #1
0
ファイル: AuthController.cs プロジェクト: 7aske/uni
    public ActionResult Login([FromBody] LoginRequest request)
    {
        if (!ModelState.IsValid)
        {
            return(BadRequest());
        }


        User user = userService.GetByUsername(request.Username);

        if (!userService.IsPasswordValid(request.Password, user.Password))
        {
            Unauthorized();
        }


        // var role = userRepository.GetUserRole(request.UserName);
        var roles = new List <string> {
            "ROLE_USER",
            "ROLE_ADMIN",
        };

        var jwtResult =
            jwtAuthManager.GenerateTokens(user, roles);

        logger.LogInformation(
            $"User [{request.Username}] logged in the system.");
        return(Ok(jwtResult));
    }
コード例 #2
0
        public authReponse Authenticate(AuthRequest model)
        {
            string            sql       = "getUserByUnameAndPassWord";
            DynamicParameters parameter = new DynamicParameters();

            parameter.Add("@Username", model.Username, DbType.String, ParameterDirection.Input);
            parameter.Add("@Password", Helper.ToMD5(model.Password), DbType.String, ParameterDirection.Input);
            User user = _query.Query <User>(1, sql, parameter).FirstOrDefault();

            if (user == null)
            {
                return(null);
            }
            var tokenResult = JwtAuthManager.GenerateTokens(model, user.access);

            return(new authReponse(tokenResult.AccessToken.ToString(), user));
        }
コード例 #3
0
        public async Task <ActionResult <JwtAuthResult> > GetToken([FromBody] LoginRequest rq)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var user = await _userService.GetValidUserAsync(rq.Username, rq.Password);

            if (user == null)
            {
                return(BadRequest(new { message = "Username or password is incorrect" }));
            }

            if (user.LockoutEnd != null)
            {
                if (user.LockoutEnd < DateTime.UtcNow)
                {
                    await _userService.UnlockUserAsync(user.Id);
                }
                else
                {
                    return(BadRequest(new { message = "User locked to " + user.LockoutEnd }));
                }
            }

            string urlImage = "";

            if (user.UrlImage != null)
            {
                urlImage = user.UrlImage;
            }

            var claims = new[]
            {
                new Claim("id", user.Id.ToString()),
                new Claim("username", user.Username.ToString()),
                new Claim("role", user.Role.ToString()),
                new Claim("avatar", urlImage)
            };
            var jwtResult = _jwtAuthManager.GenerateTokens(rq.Username, claims);

            return(jwtResult);
        }
コード例 #4
0
        public ProfileIntegrationTests()
        {
            var webHostBuilder = new WebHostBuilder()
                                 .UseStartup <ProfileTestsStartup>()
                                 .ConfigureTestServices(services =>
            {
                var descriptor = services.SingleOrDefault(d => d.ServiceType == typeof(IProfileService));

                services.Remove(descriptor);
                services.AddScoped <IProfileService, FakeProfileService>();
            });

            server = new TestServer(webHostBuilder);
            var claims = new[]
            {
                new Claim(ClaimTypes.Name, "Test"),
                new Claim(ClaimTypes.NameIdentifier, "1"),
            };

            accessTokenSample = _jwtAuthManager.GenerateTokens("Test", claims, DateTime.Now).AccessToken;
            _httpClient       = server.CreateClient();
        }