/// <summary> /// 添加SR基础数据 /// </summary> /// <returns></returns> public async Task <MResponse> AsyncSRData() { MRankInfo srRankInfo = (await _steamBLL.GetRankScore(new[] { CurrentUser.RankID })).FirstOrDefault(); if (srRankInfo == null) { bool hasSR = (await _steamBLL.GetOwnedGames(CurrentUser.PlatformID))?.OwnedGames?.Any(x => x.AppId == 207140) ?? false; if (!hasSR) { return(MResponse.Fail("此账号尚未拥有SpeedRunners游戏")); } srRankInfo.RankType = 2; } else { srRankInfo.RankType = 1; srRankInfo.OldRankScore = srRankInfo.RankScore; } BeginDb(DAL => { DAL.UpdateRankInfo(srRankInfo, true); if (DAL.ExistRankLog(CurrentUser.PlatformID)) { return; } // 添加RankLog MRankLog rankLog = new MRankLog { PlatformID = CurrentUser.PlatformID, RankScore = srRankInfo.RankScore.Value, }; DAL.AddRankLog(rankLog); }); return(MResponse.Success()); }
public MResponse DeleteAccessToken(int tokenID) { return(BeginDb(DAL => { MUser deleteUser = DAL.GetUserByTokenID(tokenID); if (deleteUser == null) { return MResponse.Fail("此设备已退出登录"); } if (deleteUser.PlatformID != CurrentUser.PlatformID) { return MResponse.Fail("权限错误,操作失败"); } if (deleteUser.LoginDate > CurrentUser.LoginDate) { return MResponse.Fail("目标设备权限较高,请重新登录后再试", -403); } DAL.DeleteAccessToken(deleteUser); return MResponse.Success(); })); }
public async Task Invoke(HttpContext context) { // 用户认证 AuthResult authResult = AuthUser(context); switch (authResult) { case AuthResult.DontNeed: case AuthResult.AuthSuccess: await _next(context); break; case AuthResult.AuthFail: // 未登录,不能访问目标接口 context.Request.ContentType = "application/json;charset=utf-8"; await context.Response.WriteAsync(JsonConvert.SerializeObject(MResponse.Fail("未登录"), new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() })); break; } }
public async Task <MResponse> Login(string query, string browser) { string openIDUrl = "https://steamcommunity.com/openid/login"; query = Regex.Replace(query, "(?<=openid.mode=).+?(?=\\&)", "check_authentication", RegexOptions.IgnoreCase).Trim('?'); string result = string.Empty; try { result = await HttpHelper.HttpPost(openIDUrl, query); } catch (Exception) { // 超时登录失败 return(MResponse.Fail("登录超时", -555)); } if (result.ToLower().Contains("is_valid:true")) { string steamID = Regex.Match(HttpUtility.UrlDecode(query), "(?<=openid/id/)\\d+", RegexOptions.IgnoreCase).Value; string newToken = CommonUtils.CreateToken(); // 保存登录凭证 BeginDb(DAL => { DAL.AddAccessToken(new MUser { PlatformID = steamID, Browser = browser, Token = newToken }); }); MResponse response = MResponse.Success(); response.Token = newToken; return(response); } return(MResponse.Fail("登录失败")); }