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); }
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))); }
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); }
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))); }