コード例 #1
0
        public IActionResult Authenticate([FromBody] CredentialsViewModel creds)
        {
            HttpResponseMessage responseMsg = new HttpResponseMessage();

            HttpContext context = HTTPContextHelper.HttpContext;

            bool isUsernamePasswordValid = false;

            String username = creds.UserName;
            String password = creds.Password;

            if (username != null && !String.IsNullOrWhiteSpace(username))
            {
                isUsernamePasswordValid = password == "1" ? true : false;
            }
            // if credentials are valid
            if (isUsernamePasswordValid)
            {
                string token = JWTHelper.CreateToken(username);
                //return the auth
                OkObjectResult auth = new OkObjectResult(new
                {
                    auth_token = token
                });

                return(auth);
            }
            else
            {
                // if credentials are not valid send unauthorized status code in response
                return(Unauthorized());
            }
        }
コード例 #2
0
        public string Login([FromQuery] string login, [FromBody] string password)
        {
            //check in DB like db.Users.FirstOrDefault(p=>p.Login == login && p.Password==password);
            #region hardcode auth
            if (login.ToLower() == "test" && password == "123")
            {
                UserAccess ua = new UserAccess()
                {
                    UserId = 1,
                    Grants = new List <string>()
                    {
                        "Reader"
                    }
                };
                return(JWTHelper.CreateToken(ua));
            }
            else if (login.ToLower() == "test2" && password == "123")
            {
                UserAccess ua = new UserAccess()
                {
                    UserId = 1,
                    Grants = new List <string>()
                    {
                        "Writer", "Reader"
                    }
                };
                return(JWTHelper.CreateToken(ua));
            }
            #endregion

            throw new NotStoredException("Incorrect login or password!");
        }
コード例 #3
0
        public IActionResult Login([FromBody] User user)
        {
            // Checking mandatory fields
            if (user == null || string.IsNullOrEmpty(user.Username) || string.IsNullOrEmpty(user.Password))
            {
                return(Json(new SimpleResponser {
                    Success = false, Message = "Username and password are mandatory."
                }));
            }

            // Checking the user
            user.Password = CryptoHelper.GenerateSHA512String(user.Password);
            User fullUser = userRepository.GetUserByCredentials(user.Username, user.Password);

            if (fullUser == null)
            {
                return(Json(new SimpleResponser {
                    Success = false, Message = "The crediantials are incorrect."
                }));
            }

            // Generating the token
            string token = JWTHelper.CreateToken(fullUser.IdUser, authOptions.Value.Secret);

            return(Json(new ComplexResponser <string> {
                Success = true, Message = "User loged correctly.", Result = token
            }));
        }
コード例 #4
0
        public async Task <IActionResult> LoginAsync([FromBody] LoginModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var loginResult = await _userService.LoginAsync(model);

                    if (!loginResult.IsSuccess)
                    {
                        _logger.LogError(loginResult.Errors.First());
                        return(BadRequest(loginResult));
                    }


                    var jwtHelper   = new JWTHelper(_configuration);
                    var tokenResult = jwtHelper.CreateToken(loginResult.Email, loginResult.UserId);

                    if (!tokenResult.IsSuccess)
                    {
                        _logger.LogError(tokenResult.Errors.First());
                        return(BadRequest(tokenResult));
                    }

                    return(Ok(tokenResult));
                }

                return(BadRequest("Some properties are not valid"));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
                return(StatusCode(500));
            }
        }
コード例 #5
0
        public IActionResult Login([FromBody] User user)
        {
            // Checking it has mandatory fields
            if (string.IsNullOrEmpty(user.Email) || string.IsNullOrEmpty(user.Password))
            {
                return(Json(new SimpleResponser {
                    Success = false, Message = "Email and Password are necessary."
                }));
            }

            // Checking the user exists in the database
            user.Password = CryptoHelper.GenerateSHA512String(user.Password);
            if (!userRepository.UserCredentialsAreCorrect(user.Email, user.Password))
            {
                return(Json(new SimpleResponser {
                    Success = false, Message = "Credentials are not correct."
                }));
            }


            // Create the token based in the complete user info
            string JWT = JWTHelper.CreateToken(user, authOptions.Value.Secret);

            // Return the token
            return(Json(new ComplexResponser <string> {
                Success = true, Message = "User loged.", Content = JWT
            }));
        }
コード例 #6
0
 protected virtual object CreateToken(string id)
 {
     if (!DoLogin(id))
     {
         return("");
     }
     return(jwt.CreateToken(id, claim_save_parameters));
 }
コード例 #7
0
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="req">条件</param>
        /// <param name="clientIP">客户端IP</param>
        /// <returns></returns>
        public async Task <ResultInfo <LoginInfo> > LoginAsync(LoginReq req, string clientIP)
        {
            //验空
            if (req == null || string.IsNullOrEmpty(req.LoginName) || string.IsNullOrEmpty(req.Password))
            {
                return(new ResultInfo <LoginInfo>(false, this.Res.Acc.LoginParamEmpty, null));
            }

            //密码DES解密
            var pwd = EncryptHelper.DecryptAES(req.Password);

            //获取用户信息
            var user = await AccountDAL.Inst.GetUserAsync(req.LoginName, EncryptHelper.Md5(pwd));

            if (user == null)
            {
                return(new ResultInfo <LoginInfo>(false, this.Res.Acc.LoginParamIncorrect, null));
            }

            //获取家庭信息
            var family = await BasicDAL.Inst.GetFamilyAsync(user.FamilyID);

            if (family == null)
            {
                return(new ResultInfo <LoginInfo>(false, this.Res.Acc.UserNoFamily, null));
            }

            //token里存放的信息
            var tokenInfo = new TokenInfo();

            tokenInfo.UserID   = user.ID;
            tokenInfo.FamilyID = family.ID;

            //返回的登录信息
            var loginInfo = new LoginInfo();

            loginInfo.NickName   = user.NickName;
            loginInfo.FamilyName = family.Name;
            loginInfo.Token      = JWTHelper.CreateToken(tokenInfo, clientIP);

            //登录日志
            var logLogin = new LoginLog();

            logLogin.UserID    = user.ID;
            logLogin.Token     = loginInfo.Token;
            logLogin.IP        = clientIP;
            logLogin.LoginTime = DateTime.Now;
            await LoginLogDAL.Inst.AddLogAsync(logLogin);

            return(new ResultInfo <LoginInfo>(true, this.Res.Acc.LoginOK, loginInfo));
        }
コード例 #8
0
        private static void TestJWT()
        {
            var user = new LoginInfo();

            user.NickName   = "NickName";
            user.FamilyName = "FamilyName";

            var token = JWTHelper.CreateToken(user, "127.0.0.1");

            Console.WriteLine(token);

            Thread.Sleep(9000);

            var ret = JWTHelper.CheckToken <LoginInfo>(token, "127.0.0.1");

            Console.WriteLine(ret.Msg);
        }
コード例 #9
0
ファイル: GetNameService.cs プロジェクト: radtek/ApiServcer
 public object GetToken(string name, string role)
 {
     return(new TextResult(JWTHelper.CreateToken(name, role)));
 }
コード例 #10
0
        public IActionResult GetToken()
        {
            JWTHelper jWT = new JWTHelper();

            return(Ok(jWT.CreateToken(null, 20)));
        }