Esempio n. 1
0
        public async Task <bool> ConfirmLogin(QRLoginInput input)
        {
            var findCode = _cacheManager.GetCache("QRLoginHub").GetOrDefault <string, QRCodeInfo>(input.ConnectionId);

            if (findCode == null)
            {
                throw new Abp.UI.UserFriendlyException("没有找到会话");
            }
            if (findCode.Token != input.Token)
            {
                throw new Abp.UI.UserFriendlyException("参数验证错误");
            }
            if (!findCode.IsValid())
            {
                throw new Abp.UI.UserFriendlyException("二维码已过期");
            }

            string token = Guid.NewGuid().ToString() + Guid.NewGuid().ToString();

            _cacheManager.GetCache("QRLoginHub").Remove(input.ConnectionId);
            _cacheManager.GetCache("QRLoginToken").Set(token, AbpSession.UserId.Value);
            await _qrLoginHub.Clients.Client(input.ConnectionId).SendAsync("confirmLogin", token);

            return(true);
        }
Esempio n. 2
0
        public JsonResult ScanQRCode(QRLoginInput input)
        {
            if (!AbpSession.UserId.HasValue)
            {
                var errorInfo = ErrorInfoBuilder.BuildForException(new Abp.UI.UserFriendlyException("请先在手机上登录"));
                errorInfo.Code = 401;
                return(Json(new AjaxResponse(errorInfo)));
            }
            var findCode = _cacheManager.GetCache("QRLoginHub").GetOrDefault <string, QRCodeInfo>(input.ConnectionId);

            if (findCode == null)
            {
                return(Json(new AjaxResponse(ErrorInfoBuilder.BuildForException(new Abp.UI.UserFriendlyException("没有找到会话")))));
            }
            if (findCode.Token != input.Token)
            {
                return(Json(new AjaxResponse(ErrorInfoBuilder.BuildForException(new Abp.UI.UserFriendlyException("参数验证错误")))));
            }
            if (!findCode.IsValid())
            {
                return(Json(new AjaxResponse(ErrorInfoBuilder.BuildForException(new Abp.UI.UserFriendlyException("二维码已过期")))));
            }

            QRLoginHub.Clients.Client(input.ConnectionId).scanQRCode();
            return(Json(new AjaxResponse(true)));
        }
Esempio n. 3
0
        public async Task <bool> ScanQRCode(QRLoginInput input)
        {
            if (!AbpSession.UserId.HasValue)
            {
                throw new Abp.UI.UserFriendlyException("请先在手机上登录");
            }
            var findCode = _cacheManager.GetCache("QRLoginHub").GetOrDefault <string, QRCodeInfo>(input.ConnectionId);

            if (findCode == null)
            {
                throw new Abp.UI.UserFriendlyException("没有找到会话");
            }
            if (findCode.Token != input.Token)
            {
                throw new Abp.UI.UserFriendlyException("参数验证错误");
            }
            if (!findCode.IsValid())
            {
                throw new Abp.UI.UserFriendlyException("二维码已过期");
            }

            await _qrLoginHub.Clients.Client(input.ConnectionId).SendAsync("scanQRCode");

            return(true);
        }
Esempio n. 4
0
        public JsonResult ConfirmLogin(QRLoginInput input)
        {
            var findCode = _cacheManager.GetCache("QRLoginHub").GetOrDefault <string, QRCodeInfo>(input.ConnectionId);

            if (findCode == null)
            {
                return(Json(new AjaxResponse(ErrorInfoBuilder.BuildForException(new Abp.UI.UserFriendlyException("没有找到会话")))));
            }
            if (findCode.Token != input.Token)
            {
                return(Json(new AjaxResponse(ErrorInfoBuilder.BuildForException(new Abp.UI.UserFriendlyException("参数验证错误")))));
            }
            if (!findCode.IsValid())
            {
                return(Json(new AjaxResponse(ErrorInfoBuilder.BuildForException(new Abp.UI.UserFriendlyException("二维码已过期")))));
            }

            string token = Guid.NewGuid().ToString() + Guid.NewGuid().ToString();

            _cacheManager.GetCache("QRLoginHub").Remove(input.ConnectionId);
            _cacheManager.GetCache("QRLoginToken").Set(token, AbpSession.UserId.Value);
            QRLoginHub.Clients.Client(input.ConnectionId).confirmLogin(token);
            return(Json(new AjaxResponse(true)));
        }