Пример #1
0
        public async Task <IActionResult> Login([FromBody] LoginReq loginModel)
        {
            if (ModelState.IsValid)
            {
                //1. Validate user in db
                var user = await _loginService.ValidateUserAsync(loginModel.UserName, loginModel.PassWord);

                if (user != null)
                {
                    //2. Generate token if user exists
                    var token = _loginService.GenerateToken(user);

                    return(Ok(new Response {
                        Success = true, BearerToken = token, Data = new ResponseData {
                            Email = user.Email
                        }
                    }));
                }
                //3. If user unauth. return UnAuthorized
                return(Unauthorized(new Response {
                    Success = false, ErrorMessage = "Email-address and/or password - incorrect"
                }));
            }
            return(Unauthorized(new Response {
                Success = false, ErrorMessage = "Both email-address and password must be submitted"
            }));
        }
Пример #2
0
    void Start()
    {
        LoginReq model1 = new LoginReq()
        {
            username = "******", password = "******"
        };

        // 序列化
        byte[] req = Util.Serialize(model1);
        Debug.Log(System.BitConverter.ToString(req));

        // 模拟打包
        byte[] data = MessageParse.Parse(1, Consts_CommandId.C2S_Login, req);

        // --------------------
        // 网络传输......
        // --------------------

        // 模拟解包
        MessageData res = MessageParse.Unparse(data);

        // 反序列化
        LoginReq model2 = Util.Deserialize <LoginReq>(res.body.msg);

        // 查看结果
        Debug.Log("commandId : " + res.body.commandId);
        Debug.Log("username : "******"password : " + model2.password);
    }
Пример #3
0
        public void rpc_login(String username, String password, Action <ErrCode, String, UInt64, String, String> callback)
        {
            var toHostId = Global.IdManager.GetHostIdByActorId(this.toActorId, this.isClient);

            if (this.FromHostId == toHostId)
            {
                var protoCode = ProtocolCode.LOGIN_REQ;
                if (protoCode < OpCode.CALL_ACTOR_METHOD)
                {
                    var peer    = Global.NetManager.GetPeerById(this.FromHostId, this.NetType);
                    var context = new RpcContext(null, peer);
                    Global.Host.CallMethodWithParams(protoCode, new object[] { username, password, callback, context });
                }
                else
                {
                    Global.Host.GetActor(this.toActorId).CallMethodWithParams(protoCode, new object[] { username, password, callback });
                }
                return;
            }
            var msg = new LoginReq()
            {
                username = username,
                password = password
            };
            var cb = new Action <byte[]>((cbData) => {
                var cbMsg = cbData == null?new LoginReq.Callback():RpcUtil.Deserialize <LoginReq.Callback>(cbData);
                callback?.Invoke(cbMsg.code, cbMsg.arg1, cbMsg.arg2, cbMsg.arg3, cbMsg.arg4);
            });

            this.CallRemoteMethod(ProtocolCode.LOGIN_REQ, msg, cb);
        }
        public async Task <ResultInfo <LoginInfo> > LoginAsync([FromBody] LoginReq req)
        {
            //获取客户端IP
            var ip = this.HttpContext.GetClientIp();

            return(await this.bll.LoginAsync(req, ip));
        }
Пример #5
0
 protected void CALL_LoginReq(LoginReq req)
 {
     if (NET_LoginReq != null)
     {
         NET_LoginReq(req);
     }
 }
Пример #6
0
        public async Task <ActionResult> Login([FromBody] LoginReq request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            if (!_userService.IsValidUserCredentials(request.UserName, request.Password))
            {
                return(Unauthorized());
            }

            var role   = _userService.GetUserRole(request.UserName);
            var claims = new[]
            {
                new Claim(ClaimTypes.Name, request.UserName),
                new Claim(ClaimTypes.Email, request.UserName),
                new Claim(ClaimTypes.Role, role)
            };

            var identity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
            await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(identity));

            return(NoContent());
        }
Пример #7
0
        public static UserDetailResponseModel AuthenticateUser(LoginReq req)
        {
            UserDetailResponseModel resp = new UserDetailResponseModel();

            try
            {
                var client = new HttpClient();
                client.BaseAddress = baseUri;
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                var content = new StringContent(JsonConvert.SerializeObject(req));
                content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                var response = client.PostAsync("api/Account/AuthenticateUser", content).Result;
                if (response.IsSuccessStatusCode)
                {
                    var value = response.Content.ReadAsStringAsync();

                    resp = JsonConvert.DeserializeObject <UserDetailResponseModel>(value.Result);
                }
                return(resp);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public bool IsAuthenticate(LoginReq req, out string jwt)
        {
            var mgr = _context.Managers.FirstOrDefault(x => x.Username == req.Username);

            // username or password incorrect
            if (mgr == null || !BCrypt.Net.BCrypt.Verify(req.Password, mgr.Password))
            {
                jwt = null;
                return(false);
            }
            else
            {
                var claims = new[]
                {
                    new Claim(JwtRegisteredClaimNames.Nbf, $"{new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds()}"),
                    new Claim(JwtRegisteredClaimNames.Exp,
                              $"{new DateTimeOffset(DateTime.Now.AddHours(24)).ToUnixTimeSeconds()}"),
                    new Claim(ClaimTypes.Name, req.Username)
                };
                var secret   = _token.Secret;
                var issuer   = _token.Issuer;
                var audience = _token.Audience;
                var key      = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secret));
                var creds    = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
                var token    = new JwtSecurityToken(
                    issuer: issuer,
                    audience: audience,
                    claims: claims,
                    expires: DateTime.UtcNow.AddHours(24),
                    signingCredentials: creds
                    );
                jwt = new JwtSecurityTokenHandler().WriteToken(token);
                return(true);
            }
        }
Пример #9
0
        //同步方法
        public RpcResult <LoginRsp> Login(LoginReq req)
        {
            AmpMessage message = AmpMessage.CreateRequestMessage(20003, 2);

            message.FriendlyServiceName = "UserService.Login";


            message.Data = req.ToByteArray();
            var response = base.CallInvoker.BlockingCall(message);

            if (response == null)
            {
                throw new RpcException("error,response is null !");
            }
            var result = new RpcResult <LoginRsp>();

            if (response.Code != 0)
            {
                result.Code = response.Code;
            }

            if (response.Data == null)
            {
                result.Data = new LoginRsp();
            }
            else
            {
                result.Data = LoginRsp.Parser.ParseFrom(response.Data);
            }

            return(result);
        }
Пример #10
0
        public async Task <(bool, string)> IsAuthenticated(LoginReq req)
        {
            var user = await _Context.Managers.FirstOrDefaultAsync(x => x.UserName == req.Username);

            if (user == null || !BCrypt.Net.BCrypt.Verify(req.Password, user.HashPassword))
            {
                return(false, string.Empty);
            }
            else
            {
                var claims = new[]
                {
                    new Claim(JwtRegisteredClaimNames.Nbf,
                              $"{new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds()}"),
                    new Claim(JwtRegisteredClaimNames.Exp,
                              $"{new DateTimeOffset(DateTime.Now.AddHours(12)).ToUnixTimeSeconds()}"),
                    new Claim(ClaimTypes.Name, req.Username)
                };

                var skey     = _Token.Secret;
                var domain   = _Token.Issuer;
                var audience = _Token.Audience;
                var key      = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(skey));
                var creds    = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
                var token    = new JwtSecurityToken(
                    issuer: domain,
                    audience: audience,
                    claims: claims,
                    expires: DateTime.Now.AddHours(12),
                    signingCredentials: creds
                    );
                var jwttoken = new JwtSecurityTokenHandler().WriteToken(token);
                return(true, jwttoken);
            }
        }
Пример #11
0
        public async Task <RpcResult <LoginRsp> > LoginAsync(LoginReq req, int timeOut = 3000)
        {
            AmpMessage message = AmpMessage.CreateRequestMessage(20003, 2);

            message.FriendlyServiceName = "UserService.Login";
            message.Data = req.ToByteArray();
            var response = await base.CallInvoker.AsyncCall(message, timeOut);

            if (response == null)
            {
                throw new RpcException("error,response is null !");
            }
            var result = new RpcResult <LoginRsp>();

            if (response.Code != 0)
            {
                result.Code = response.Code;
            }

            if (response.Data == null)
            {
                result.Data = new LoginRsp();
            }
            else
            {
                result.Data = LoginRsp.Parser.ParseFrom(response.Data);
            }

            return(result);
        }
Пример #12
0
        public async Task <CommonResult> MpLogin([FromBody] LoginReq req)
        {
            //已登录直接跳过
            if (HttpContext.IsAuthenticated())
            {
                return(new CommonResult());
            }
            //微信获取session_key
            var session = await WeixinRemote.GetSessionKey(req.Code);

            if (session?.ErrCode != 0)
            {
                return(CommonResult.CreateError(1, ""));
            }
            //数据库中获取微信校验过的身份,没有则新增
            var user = new User {
                OpenId = session.OpenId, UnionId = session.UnionId
            };
            var userDao = new UserDao();

            user = userDao.GetLoginUser(user);
            //写入cookie中
            await SetCookie(user);

            return(new CommonResult());
        }
Пример #13
0
        private async Task LoginAsync()
        {
            LoginInternet loginObj = new LoginInternet();

            LoginResult.Type resultType;
            ChallengeReq     challengeReq = new ChallengeReq(Text_Account.Text);

            var result = await loginObj.ChallengeAsync(challengeReq);

            if (string.IsNullOrEmpty(result))
            {
                resultType = LoginResult.Type.CodeError;
            }

            LoginReq loginReq = new LoginReq(challengeReq, Text_Password.Password, result);

            resultType = await loginObj.LoginAsync(loginReq);

            // loginResult

            LoginResultViewModel viewModel = LoginResultViewModel.GetInstance();

            viewModel.LoginInfo = new LoginResult(resultType).ReusltInfo;

            //keepActTimer.Start();

            // 自动保存账号
            if (AppSettings.Default.autoSave)
            {
                AppSettings.Default.account  = Text_Account.Text;
                AppSettings.Default.password = Text_Password.Password;
                AppSettings.Default.Save();
            }
        }
Пример #14
0
        public Task <TokenDto> SignIn(LoginReq req)
        {
            User user = null;

            try {
                //缓存增加当前用户相关信息
                //_cacheProvider= CacheContainer.GetInstances<ICacheProvider>("Redis");
                //_cacheProvider.Add("UserKeyId=22", "{ UserKeyId=22,TenantId=3}");
                var encryptionService = new EncryptionService();
                var pwde = encryptionService.EncryptText(req.Pwd);
                user = _queryUserRepository.GetSingle(a => a.CorporationKeyId == req.CorporationKeyId && !a.IsDelete && a.Pwd == pwde && a.No == req.UserName);
            }
            catch (Exception ex)
            {
                string ss = ex.Message;
            }
            if (user != null)
            {
                return(Task.FromResult(new TokenDto {
                    CorporationKeyId = user.CorporationKeyId, Token = user.EmployeeKeyID.ToString()
                }));
            }
            else
            {
                return(Task.FromResult <TokenDto>(null));
            }
        }
Пример #15
0
        public async Task <IActionResult> Login(LoginReq req)
        {
            var log = new OperatingLog();

            log.Create("");
            log.Summary = req.UserName + "尝试登录";
            var user = await _userBll.LoginAsync(req.UserName, req.Password);

            if (user == null)
            {
                await _logBll.AddAsync(log);

                return(new JsonResult(new { success = false, message = "用户不存在" }));
            }
            else
            {
                log.Create(user.PrimaryKey);
                log.Model  = Json.Serialize(user);
                log.LinkId = user.PrimaryKey;
                await _logBll.AddAsync(log);
            }

            var claims = new[]
            {
                new Claim("name", user.UserName),
                new Claim("id", user.PrimaryKey),
                new Claim("role", "admin"),
            };
            var key    = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config.Value.SecretKey));
            var creds  = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
            var token  = new JwtSecurityToken(_config.Value.Issuer, _config.Value.Audience, claims, DateTime.Now, DateTime.Now.AddMinutes(_config.Value.Expired), creds);
            var result = new JwtSecurityTokenHandler().WriteToken(token);

            return(new JsonResult(new { success = true, token = result }));
        }
Пример #16
0
        //调用委托
        private async Task <AmpMessage> ProcessLoginAsync(AmpMessage req)
        {
            LoginReq request = null;

            if (req.Data == null)
            {
                request = new LoginReq();
            }
            else
            {
                request = LoginReq.Parser.ParseFrom(req.Data);
            }

            req.FriendlyServiceName = "UserGateService.Login";

            var result = await LoginAsync(request);

            var response = AmpMessage.CreateResponseMessage(req.ServiceId, req.MessageId);

            response.FriendlyServiceName = "UserGateService.Login";
            response.Code = result.Code;
            if (result.Data != null)
            {
                response.Data = result.Data.ToByteArray();
            }
            return(response);
        }
Пример #17
0
        public async Task <string> Authenticate(LoginReq req)
        {
            var user = await _userManager.FindByNameAsync(req.UserName);

            if (user == null)
            {
                return(null);
            }

            var res = await _signInManager.PasswordSignInAsync(user, req.Password, req.RememberMe, true);

            if (!res.Succeeded)
            {
                return(null);
            }
            var roles = await _userManager.GetRolesAsync(user);

            var claims = new[]
            {
                new Claim(ClaimTypes.Email, user.Email),
                new Claim(ClaimTypes.GivenName, user.FirstName),
                new Claim(ClaimTypes.Role, string.Join(";", roles))
            };
            var key   = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Tokens:Key"]));
            var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

            var token = new JwtSecurityToken(_config["Tokens:Issuer"],
                                             _config["Tokens:Issuer"],
                                             claims,
                                             expires: DateTime.Now.AddHours(3),
                                             signingCredentials: creds);

            return(new JwtSecurityTokenHandler().WriteToken(token));
            /*ApiSuccessResult<string>(new JwtSecurityTokenHandler().WriteToken(token));*/
        }
Пример #18
0
        void OnMyConnected(Connection connection, System.Net.Sockets.SocketError result)
        {
            if (result == System.Net.Sockets.SocketError.Success)
            {
                LoginReq request = new LoginReq();
                request.account    = account;
                request.pass       = pass;
                request.randomSeed = guid;
                request.deviceInfo = deviceInfo;

                //if (MessageStatistic.isOpen) loginReq.seq = MessageStatistic.curTimeMS();
                if (clientCore.Transmitter.SendToAuth(connection, request, (int)EGMI.EGMI_LOGIN_REQ) == false)
                {
                    if (clientCore != null && clientCore.onLogin != null)
                    {
                        clientCore.onLogin((int)EGEC.EGEC_CORE_NET_ERROR, 1, "", -1, null);
                    }
                }
            }
            else
            {
                if (clientCore != null && clientCore.onLogin != null)
                {
                    clientCore.onLogin((int)EGEC.EGEC_CORE_NET_ERROR, 1, "", -1, null);
                }
            }
        }
Пример #19
0
        public static LoginResp Login(LoginReq req)
        {
            var ret  = Class1.DoHttpRequest("/login", "POST", null, JsonConvert.SerializeObject(req));
            var resp = JsonConvert.DeserializeObject <LoginResp>(ret);

            return(resp);
        }
Пример #20
0
        // Create Json Web Token
        private string GenerateJSONWebToken(LoginReq userInfor, byte roleId)
        {
            // Get security key
            var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Jwt:Key"]));

            // Create credentials with security above and algorithms
            var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);

            // Create Claim user
            var claims = new List <Claim>
            {
                new Claim(JwtRegisteredClaimNames.Sub, userInfor.username),
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                new Claim("roles", roleId.ToString())
            };

            var token = new JwtSecurityToken(
                issuer: _config["Jwt:Issuer"],
                audience: _config["Jwt:Issuer"],
                claims,
                expires: DateTime.Now.AddDays(30),
                signingCredentials: credentials);

            var encodetoken = new JwtSecurityTokenHandler().WriteToken(token);

            return(encodetoken);
        }
Пример #21
0
 LoginAck OnLoginClient(LoginReq msg)
 {
     var response = new LoginAck();
     eClient client = LoadClient(msg.email);
     if (client == null)
     {
         return response;
     }
     if (client.Password == msg.pass)
     {
         response.result = LoginAck.Result.SUCCESS;
         response.user_id = client.Id;
         if(onlineClients.ContainsKey(client.Id))
         {
             onlineClients[client.Id].lastAction_ = DateTime.Now;
         }
         else
         {
             onlineClients.Add(client.Id, new eClientOnline(client));
         }
         return response;
     }
     response.result = LoginAck.Result.FAIL_INVALID_PASS;
     return response;
 }
Пример #22
0
        LoginAck OnLoginSaler(LoginReq msg)
        {
            var response = new LoginAck();

            eSaler saler = LoadSaler(msg.email); 
                
            if (saler == null)
            {
                return response;
            }
            if (saler.Password == msg.pass)
            {
                response.result = LoginAck.Result.SUCCESS;
                response.user_id = saler.Id;
                if (onlineSalers.ContainsKey(saler.Id))
                {
                    onlineSalers[saler.Id].lastAction_ = DateTime.Now;
                }
                else
                {
                    onlineSalers.Add(saler.Id, new eSalerOnline(saler));
                }
                return response;
            }
            response.result = LoginAck.Result.FAIL_INVALID_PASS;
            return response;
        }
Пример #23
0
    public override void Execute(INotification notification)
    {
        int     mainproto = int.Parse(notification.Name);
        CmdType type      = (CmdType)Enum.Parse(typeof(CmdType), notification.Type);

        if (type == CmdType.Request)
        {
            Message message = notification.Body as Message;
            Notify  notify  = new Notify();
            notify.Protocol = mainproto;
            switch (mainproto)
            {
            case Protocol.Login:
                LoginReq loginReq = ReferencePool.Require <LoginReq>();
                loginReq.Account  = message.args[0].ToString();
                loginReq.Password = message.args[1].ToString();
                notify.message    = loginReq.ToByteArray();
                NetworkManager.SendRequest(notify);
                break;

            case Protocol.Regist:
                RegisterReq registerReq = ReferencePool.Require <RegisterReq>();
                registerReq.Account  = message.args[0].ToString();
                registerReq.Password = message.args[1].ToString();
                notify.message       = registerReq.ToByteArray();
                NetworkManager.SendRequest(notify);
                break;
            }
        }
    }
Пример #24
0
        public LoginRes ValidateLoginCredentials(LoginReq req)
        {
            var data = new LoginRes();

            data = this._loginCommand.ValidateLoginCredentials(req);

            return(data);
        }
Пример #25
0
        public User findByUserNameAndPassWord(LoginReq req)
        {
            var user = req.Username;
            var pass = req.Password;
            var lg   = _rep.findByUserNameAndPassWord(user, pass);

            return(lg);
        }
Пример #26
0
    public void OnClick()
    {
        LoginReq req = new LoginReq();

        req.u_name = it.text;
        GameInfo.Instance.UserName = it.text;
        NetWorkManagement.Instance.SendProtobufCmd((int)Stype.game_server, (int)Cmd.eLoginReq, req);
    }
Пример #27
0
    public void sendLogintReq(string name, int racist)
    {
        LoginReq request = new LoginReq();

        request.name   = name;
        request.racist = racist;
        VitNetworkScript.Instance.sendMessage(request, LOGINREQ);
    }
Пример #28
0
        public async Task <ApiResult> Login(LoginReq login)
        {
            if (string.IsNullOrEmpty(login.UserName))
            {
                return(Error("用户名不能为空"));
            }
            if (string.IsNullOrEmpty(login.Password))
            {
                return(Error("密码不能为空"));
            }
            var password = Md5Helper.Encrypt(login.Password);
            var user     = await _userService.FindFirstOrDefaultAsync(m => m.UserName == login.UserName && m.Password == password);

            if (user == null)
            {
                return(Error("用户名或密码错误"));
            }
            UserInfo loginUserRes = new UserInfo
            {
                UserId   = user.Id,
                UserName = user.UserName,
                NickName = user.NickName,
                Avator   = user.Avator,
                Mobile   = user.Mobile,
                Email    = user.Email,
                //Depts = new List<long>(),
                //Roles = new List<long>(),
                //GrantedModules = new List<TreeNode>()
            };
            var depts = await GetUserDepts(user.Id);

            var roles = await GetUserRoles(user.Id, depts);

            var moduleList = await GetUserModules(roles);

            var treeNode = new GrantedModule();

            TreeHelper.ListToTree(treeNode, moduleList);
            //loginUserRes.GrantedModules = treeNode.Children;

            #region 设置用户基本信息
            RedisHelper.Set($"User${user.Id}", loginUserRes, 60 * 60 * 24);
            #endregion

            Dictionary <string, string> dic = new Dictionary <string, string>
            {
                { "UserId", user.Id.ToString() },
                { "UserName", user.UserName }
            };
            var token = TokenHelper.GenerateToken(dic, 60);
            var res   = new
            {
                token,
                userInfo = loginUserRes,
                moduleList
            };
            return(Success(res));
        }
Пример #29
0
    public void SendMsg_Login(string username, string password)
    {
        LoginReq req = new LoginReq()
        {
            username = username, password = Util.Md5Sum(password)
        };

        Globals.Instance.SendMsg <LoginReq>(Consts_CommandId.C2S_Login, req);
    }
Пример #30
0
    private void OnLogin()
    {
        LoginReq req = new LoginReq();

        req.account = account;
        req.passwd  = password;
        // LoginNetLogic.Login(req);
        NetLogic.RequestNet(eProtocalCommand.LOGIN_CMD, req);
    }