//кортеж item1-основной токен item2-рефлеш public async static Task <Tuple <string, string> > Refresh(ApplicationDbContext db, string userId, string refreshToken) { string hashToken = AuthJWT.GetHashRefreshToken(refreshToken);// refreshToken.GetHashCode(); var user = await db.Users.FirstOrDefaultAsync(x1 => x1.Id == userId && x1.RefreshTokenHash == hashToken); if (user == null) { return(null); } string token = AuthJWT.GenerateRefreshToken(); await user.SetRefreshToken(db, token); return(new Tuple <string, string>(AuthJWT.GenerateMainToken(AuthJWT.GetIdentity(user)), token)); }
public async static Task <bool> DeleteRefreshTokenFromDb(ApplicationDbContext db, string userId, string refreshToken) { string hashToken = AuthJWT.GetHashRefreshToken(refreshToken);//refreshToken.GetHashCode(); var user = await db.Users.FirstOrDefaultAsync(x1 => x1.Id == userId && x1.RefreshTokenHash == hashToken); if (user == null) { return(false); } user.RefreshTokenHash = null; await db.SaveChangesAsync(); return(true); }