public async Task <IActionResult> ScanningLogin(string account, string code) { //判断code是否是本地生成,并校验是否超时 //string str = AESSecurity.AESDecrypt(code, AESKey); //var array = str.Split('&'); //long ts = array[1].ToInt64(); //if (DateTime.Now.AddMinutes(3).ToTimeStamp() > ts) //{ // return Ok("二维码失效"); //} //string qrcode = array[0]; string qrcode = code; StringValues accessToken = ""; HttpContext.Request.Headers.TryGetValue("Authorization", out accessToken); var res = await _scanningLoginService.ScanningLoginAsync(account, accessToken); if (res.LoginStatus == LoginStatus.Success) { //通知页面跳转 var msg = SignalRMessageGroups.UserGroups.FirstOrDefault(m => m.QrCode == qrcode && m.UserId == 0); msg.UserId = res.User.UserId; msg.JSON = JsonConvert.SerializeObject(res); SignalRMessageGroups.Clear(qrcode, msg.UserId); await _hubContext.Clients.Client(msg.ConnectionId).SendAsync("HomePage", msg.QrCode); } return(Ok(res)); }
public async Task <IActionResult> Qr(string code) { if (code == null) { return(RedirectToAction("Login")); } SignalRMessageGroups.Clear(); var msg = SignalRMessageGroups.UserGroups.FirstOrDefault(m => m.QrCode == code && m.UserId > 0); if (msg == null) { return(RedirectToAction("Login")); } await SaveLogin(JsonConvert.DeserializeObject <LoginResult <UserIdentity> >(msg.JSON)); return(Redirect("/")); }