示例#1
0
        public ActionResult Signin([FromBody] LoginBindModel model)
        {
            var oper = operatorService.GetByCredentials(model.Email, model.Password);

            if (oper == null)
            {
                return(NotFound());
            }

            var tokenString = BuildToken(oper);

            return(Ok(new { Token = tokenString, oper.FirstName }));
        }
示例#2
0
        public async Task <APIResult <AccessTokenViewModel> > Login(LoginBindModel loginBindModel)
        {
            if (ModelState.IsValid)
            {
                var user =
                    _iSysUserService.GetAll()
                    .FirstOrDefault(
                        u =>
                        u.UserName == loginBindModel.UserName || u.Email == loginBindModel.UserName ||
                        u.PhoneNumber == loginBindModel.UserName);
                if (user == null)
                {
                    ModelState.AddModelError("UserName", "用户不存在");
                }
                else
                {
                    var result = await SignInManager.PasswordSignInAsync(user.UserName, loginBindModel.Password, false, true);

                    switch (result)
                    {
                    case SignInStatus.Success:
                        var data = await GetAccessToken(user);

                        if (data != null)
                        {
                            return(new APIResult <AccessTokenViewModel>(data, 0, "登录成功"));
                        }
                        break;

                    case SignInStatus.RequiresVerification:    //需要验证,转到验证步骤
                        return(new APIResult <AccessTokenViewModel>(null, 1, "需要验证后方能登录"));

                    case SignInStatus.LockedOut:
                        ModelState.AddModelError("", "用户已锁定");
                        break;

                    default:
                        ModelState.AddModelError("Password", "密码错误");
                        break;
                    }
                }
            }
            return(new APIResult <AccessTokenViewModel>(null, 100, "登录失败", ModelState));
        }