Example #1
0
        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));
        }
Example #2
0
        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("/"));
        }