Ejemplo n.º 1
0
        public async Task <IActionResult> CreateToken([FromBody] LogInReq model)
        {
            try
            {
                var user = await _userRepository.WithEmail(model.Email);

                if (user == null)
                {
                    return(NotFound("Usuario con email no existe"));
                }
                if (_passwordHasher.VerifyHashedPassword(user, user.Password, model.Password) != PasswordVerificationResult.Success)
                {
                    return(Unauthorized());
                }

                var claims = new[] {
                    new Claim(JwtRegisteredClaimNames.Sub, user.Id.ToString()),
                    new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                    new Claim(JwtRegisteredClaimNames.Email, user.Email)
                };
                var jwtSecurityToken = _jwtTokenGenerator.CreateToken(claims);

                return(Ok(new AuthResponse {
                    Token = new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken),
                    Expiration = jwtSecurityToken.ValidTo,
                    User = new UserResponse(user),
                    IAmRoot = await permissionRepository.UserIsRoot(user.Id),
                    Permissions = (await permissionRepository.GetUserPermissions(user.Id)).Select(p => new PermissionResponse(p)).ToList(),
                    Companies = (await companyRepository.GetUserCompanies(user.Id)).Select(c => new CompanyResult(c)).ToList()
                }));
            }
            catch (Exception ex)
            {
                _logger.LogError($"error while creating token: {ex}");
                return(StatusCode((int)HttpStatusCode.InternalServerError, "error while creating token"));
            }
        }
Ejemplo n.º 2
0
        public LogInRes GetStudentLogIn(LogInReq req)
        {
            var          retValue    = new LogInRes();
            SqlParameter prmHSRollNo = new SqlParameter("@HSRollNo", SqlDbType.VarChar);

            prmHSRollNo.Value = req.HSRollNo;
            SqlParameter prmApplicationID = new SqlParameter("@ApplicationID", SqlDbType.VarChar);

            prmApplicationID.Value = DBNull.Value;
            SqlParameter prmStudentID = new SqlParameter("@StudentID", SqlDbType.Int);

            prmStudentID.Value = DBNull.Value;
            SqlParameter prmCURegNo = new SqlParameter("@CURegNo", SqlDbType.VarChar);

            prmCURegNo.Value = DBNull.Value;
            SqlParameter prmDOB = new SqlParameter("@DOB", SqlDbType.VarChar);

            prmDOB.Value = req.DOB.Date;
            SqlParameter prmType = new SqlParameter("@Type", SqlDbType.Char);

            prmType.Value = "1";

            using (SqlDataReader dr = SqlServerHelper.ExecuteReaderProc("[Student].[upGetLogin]", prmStudentID, prmApplicationID, prmHSRollNo, prmCURegNo, prmDOB, prmType))
            {
                if (dr != null && dr.HasRows)
                {
                    dr.Read();
                    retValue = new LogInRes
                    {
                        StudentID = Convert.ToInt32(dr["StudentID"]),
                        ProgYear  = object.ReferenceEquals(dr["ProgYear"], DBNull.Value) ? string.Empty : Convert.ToString(dr["ProgYear"]),
                    };
                }
            }
            return(retValue);
        }