/// <summary> /// 根据 token 获取管理员,如果管理员不存在,会返回管理员空值 /// </summary> /// <param name="token"></param> /// <returns></returns> public static Account GetAccount(string token) { using var db = new YGBContext(); DB.Tables.Admin account = db.Admins.AsNoTracking() .FirstOrDefault(a => a.Token.ToString() == token); if (account is null) { return(new Account(Account.EMPTY)); } return(new Account(account.Id)); }
/// <summary> /// 登出 /// </summary> public async Task <Resp> Logout() { using var db = new YGBContext(); DB.Tables.Admin account = await db.Admins.FirstOrDefaultAsync(a => a.Id == Id); if (account is null) { return(Resp.Success(Resp.NONE)); } account.Token = Guid.NewGuid(); if (await db.SaveChangesAsync() == 1) { return(Resp.Success(Resp.NONE)); } return(Resp.Fault(Resp.NONE, "退出登录失败")); }
/// <summary> /// 登录 /// </summary> public static async Task <(bool, Resp)> Login(Models.LoginInfo loginInfo) { /* * 检查登录参数 */ (bool isValid, string msg) = loginInfo.IsValid(); if (!isValid) { return(false, Resp.Fault(Resp.NONE, msg)); } /* * 检查登录账号密码 */ using var db = new YGBContext(); DB.Tables.Admin account = await db.Admins.FirstOrDefaultAsync(a => a.Account == loginInfo.Account && a.Password == loginInfo.Password); if (account is null) { return(false, Resp.Fault(Resp.NONE, "账号不存在或密码错误")); } account.Token = Guid.NewGuid(); int suc = await db.SaveChangesAsync(); if (suc != 1) { return(false, Resp.Fault(Resp.NONE, "登录失败, 请重试")); } Results.LoggedInInfo result = new Results.LoggedInInfo { Id = account.Id, Token = account.Token, UserName = account.Account, Email = account.Email }; return(true, Resp.Success(result)); }