PageSourceSearch

https://z-lib.ag/login

html z-lib.ag collected 2026-10-10 02:20:54 UTC 16,128 bytes, 436 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en" dir="ltr">
3<head>
4    <!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 4-5
4
5<script async src="https://www.googletagmanager.com/gtag/js?id=
5G-W8RYZ8T5BC
vendor: 12 bytes, line 5
5"></script>
6<script>
7  
vendor: 134 bytes, lines 7-11
7window.dataLayer = window.dataLayer || [];
8  function gtag(){dataLayer.push(arguments);}
9  gtag('js', new Date());
10
11  gtag('config', '
11G-W8RYZ8T5BC
vendor: 4 bytes, line 11
11');
12</script>
vendor: 1 bytes, line 12
12
13<script type="text/javascript">
14    navigator.sayswho = (function(){
15        var ua= navigator.userAgent, tem,
16        M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
17        if(/trident/i.test(M[1])){
18            tem=  /\brv[ :]+(\d+)/g.exec(ua) || [];
19            return 'IE '+(tem[1] || '');
20        }
21        if(M[1]=== 'Chrome'){
22            tem= ua.match(/\b(OPR|Edge)\/(\d+)/);
23            if(tem!= null) return tem.slice(1).join(' ').replace('OPR', 'Opera');
24        }
25        M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
26        if((tem= ua.match(/version\/(\d+)/i))!= null) M.splice(1, 1, tem[1]);
27        return M.join(' ');
28    })();
29
30</script>
vendor: 1 bytes, line 30
30
31<script type="text/javascript">
32    window.__authStatusBootstrap = {"authenticated":false,"csrf_token":null,"user":null};
33</script>
vendor: 1 bytes, line 33
33
34<script data-cfasync="false" type="text/javascript">
35(function () {
36  var bootstrapData = window.__authStatusBootstrap || null;
37  var resolvedData = null;
38  var pendingPromise = null;
39
40  function ensureCsrfMeta(data) {
41    if (!data || !data.csrf_token) {
42      return;
43    }
44
45    if (!document.querySelector('meta[name="csrf_token"]')) {
46      const meta = document.createElement('meta');
47      meta.name = 'csrf_token';
48      meta.content = data.csrf_token;
49      document.head.appendChild(meta);
50    }
51  }
52  function storeAuthUser(data) {
53    if (data && typeof data === 'object') {
54      window.authUser = data.user;
55    }
56  }
57
58  function resolveAndCache(data) {
59    if (!data) {
60      return null;
61    }
62
63    resolvedData = data;
64    ensureCsrfMeta(resolvedData);
65    storeAuthUser(resolvedData);
66    return resolvedData;
67  }
68
69  if (bootstrapData) {
70    resolveAndCache(bootstrapData);
71    bootstrapData = null;
72    delete window.__authStatusBootstrap;
73  }
74
75  window.__authStatusPromise = null;
76
77  window.__fetchAuthStatus = function () {
78    if (resolvedData) {
79      return Promise.resolve(resolvedData);
80    }
81
82    if (!pendingPromise) {
83      pendingPromise = fetch('/api/auth-status', { credentials: 'same-origin' })
84        .then(function (res) { return res.json(); })
85        .then(function (data) {
86          window.__authStatusPromise = null;
87          return resolveAndCache(data);
88        })
89        .catch(function (error) {
90          window.__authStatusPromise = null;
91          console.error('Failed to load auth status', error);
92          throw error;
93        });
94
95      window.__authStatusPromise = pendingPromise;
96    }
97
98    return pendingPromise;
99  };
100
101  document.addEventListener('DOMContentLoaded', function () {
102    window.__fetchAuthStatus().catch(function () {
103      // Errors are logged above; swallow here so page rendering continues.
104    });
105
106  });
107})();
108</script>
108
109
110<title>Single login and account sign in | Z-Library</title>
111<base href="/">
112<meta charset="utf-8">                             
113<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
114<meta http-equiv="X-UA-Compatible" content="IE=edge">
115<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
116<meta name="title" content="Z-Library Login - Single Login | Z-Library Project">
117<meta name="description" content="Z-Library single login and Z-Library login page. Sign in to your account to find books, manage your library, and continue reading.">
118<meta name="keywords" content="z-library single login, z library single login, z-lib single login, zlibrary login, z-library login, z lib login, z-library sign in, single login">
119<meta name="robots" content="index,follow">
120<meta name="distribution" content="global">
121<link rel="canonical" href="https://z-lib.ag/login">
122<link rel="alternate" hreflang="en" href="https://z-lib.ag/login">
123<link rel="alternate" hreflang="ru" href="https://z-lib.ag/ru/login">
124<link rel="alternate" hreflang="es" href="https://z-lib.ag/es/login">
125<link rel="alternate" hreflang="it" href="https://z-lib.ag/it/login">
126<link rel="alternate" hreflang="el" href="https://z-lib.ag/el/login">
127<link rel="alternate" hreflang="ar" href="https://z-lib.ag/ar/login">
128<link rel="alternate" hreflang="id" href="https://z-lib.ag/id/login">
129<link rel="alternate" hreflang="ms" href="https://z-lib.ag/ms/login">
130<link rel="alternate" hreflang="hi" href="https://z-lib.ag/hi/login">
131<link rel="alternate" hreflang="de" href="https://z-lib.ag/de/login">
132<link rel="alternate" hreflang="fr" href="https://z-lib.ag/fr/login">
133<link rel="alternate" hreflang="pt" href="https://z-lib.ag/pt/login">
134<link rel="alternate" hreflang="uk" href="https://z-lib.ag/uk/login">
135<link rel="alternate" hreflang="pl" href="https://z-lib.ag/pl/login">
136<link rel="alternate" hreflang="zh" href="https://z-lib.ag/zh-zh/login">
137<link rel="alternate" hreflang="zh-TW" href="https://z-lib.ag/tw/login">
138<link rel="alternate" hreflang="ja" href="https://z-lib.ag/ja/login">
139<link rel="alternate" hreflang="vi" href="https://z-lib.ag/vi/login">
140<link rel="alternate" hreflang="az" href="https://z-lib.ag/az/login">
141<link rel="alternate" hreflang="hy" href="https://z-lib.ag/hy/login">
142<link rel="alternate" hreflang="th" href="https://z-lib.ag/th/login">
143<link rel="alternate" hreflang="tr" href="https://z-lib.ag/tr/login">
144<link rel="alternate" hreflang="ka" href="https://z-lib.ag/ka/login">
145<link rel="alternate" hreflang="bn" href="https://z-lib.ag/bn/login">
146<link rel="alternate" hreflang="ps" href="https://z-lib.ag/ps/login">
147<link rel="alternate" hreflang="te" href="https://z-lib.ag/te/login">
148<link rel="alternate" hreflang="ur" href="https://z-lib.ag/ur/login">
149<link rel="alternate" hreflang="ko" href="https://z-lib.ag/ko/login">
150<link rel="alternate" hreflang="sr" href="https://z-lib.ag/sr/login">
151<link rel="alternate" hreflang="bg" href="https://z-lib.ag/bg/login">
152<link rel="alternate" hreflang="x-default" href="https://z-lib.ag/login">
153<meta property="og:url" content="https://z-lib.ag/login">
154
155<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=1">
156<link rel="icon" href="/favicon.svg">
157<link rel="icon" type="image/svg+xml" href="/favicon-32x32.svg?v=2" sizes="32x32">
158<link rel="icon" type="image/svg+xml" href="/favicon-16x16.svg?v=2" sizes="16x16">
159<link rel="manifest" href="/manifest.json?v=1">
160<link rel="mask-icon" href="/safari-pinned-tab.svg?v=1" color="#5bbad5">
161<meta name="apple-mobile-web-app-title" content="Z-Library">
162<meta name= "apple-mobile-web-app-capable" content="yes">
163<meta name="mobile-web-app-capable" content="yes">
164<meta name="application-name" content="Z-Library">
165<meta name="theme-color" content="#ffffff">
166<meta name="format-detection" content="telephone=no">
167
168    
169<!-- CSS SET -->
170<!-- JS SET --> 
171<link REL="SHORTCUT ICON" HREF="/favicon.ico?v=1">
172
173
174<link rel="stylesheet" type="text/css" href="/css/global.css?v=20260719" />
175<script type="text/javascript" src="/js/global.js"></script>
175
176<link rel="stylesheet" type="text/css" href="/design/appdesign/bz/resources/css/bztheme.css?v=20260709id" />
177<link rel="stylesheet" type="text/css" href="/design/appdesign/bz/resources/build/bzmain.css?v=20260709id" />
178<link rel="stylesheet" type="text/css" href="/design/appdesign/bz/components/style.css?v=20260709id" />
179<link rel="stylesheet" type="text/css" href="/design/appdesign/sk/theme.css?v=20260709id" />
180<link rel="stylesheet" type="text/css" href="/design/appdesign/sk/global.css?v=20260709id" />
181<link rel="stylesheet" type="text/css" href="/design/appdesign/sk/global-d.css?v=20260709id" />
182<link rel="stylesheet" type="text/css" href="/design/appdesign/sk/main.css?v=20260719" />
183<link rel="stylesheet" type="text/css" href="/design/appdesign/sk/style.css?v=20260709id" />
184<link rel="stylesheet" type="text/css" href="/design/zlib-new/zlib-new.css?v=20260709id" />
185<script type="text/javascript" src="/design/appdesign/bz/components/bzlibrary.js?v=20260709id" defer></script>
vendor: 1 bytes, line 185
185
186<script type="text/javascript" src="/design/appdesign/bz/components/bz-cover.js?v=20260709id" defer></script>
vendor: 1 bytes, line 186
186
187<script type="text/javascript" src="/design/zlib-new/zlib-new.js?v=20260709id" defer></script>
187
188
189<script type="application/ld+json">
190{
191  "@context": "http://schema.org",
192  "@type": "WebSite",
193  "name": "Z-Library",
194  "url": "https:\/\/z-lib.ag\/",
195  "inLanguage": "en",
196  "sameAs": [
197    "https://twitter.com/thezlibrary"
198  ],
199  "potentialAction": {
200    "@type": "SearchAction",
201    "target": "https:\/\/z-lib.ag\/s?q={search_term_string}",
202    "query-input": "required name=search_term_string"
203  }
204}
205</script>
205
206
207<style>
208    div#colorBoxes
209    {
210        text-transform: capitalize;
211    }
212
213    div#colorBoxes ul li.active:nth-child(1)
214    {
215        border: 1px solid #378096;
216        box-shadow: 0 0 6px #7DBCCF;
217        border-top: 0px;
218    }
219
220    div#colorBoxes ul li.active:nth-child(2)
221    {
222        border: 1px solid #6e9b41;
223        box-shadow: 0 0 6px #a4e861;
224        border-top: 0px;
225    }
226</style>
227
228<style type="text/css">
229    .main-menu-item img {
230        opacity: 0.7;
231    }
232    .main-menu-item img:hover {
233        opacity: 1;
234    }
235</style>
236
237<style>
238    .see-more-btn {
239        text-align: right;
240        font-size: 100%;
241        margin: 20px 0 0 0;
242    }
243</style>
244           
245
246    <style>
247        .bMosaicBox { min-height: 100vh }
248        #booksMosaicBoxContainer #bMosaicBox {
249            display: none;
250        }
251        #booksMosaicBoxContainer #bMosaicBox .brick a {
252            display: block;
253            text-decoration: none;
254        }
255        #booksMosaicBoxContainer #bMosaicBox .bMosaicCover {
256            width: 100%;
257        }
258
259        .book-loading { position: relative }
260
261        .book-loading > div:nth-child(2) {
262            opacity: 0;
263            position: absolute;
264            top: 0;
265            left: 0;
266        }
267
268        #bMosaicBox .c-book-title {
269            max-height: 60px;
270        }
271
272        @keyframes toggleOpacity {
273            from { opacity: 1 }
274            to { opacity: 0 }
275        }
276    </style>
277
278    <style>
279        /* comments */
280
281.media{
282    display: -webkit-box;
283    display: -ms-flexbox;
284    display: flex;
285    -webkit-box-align: start;
286    -ms-flex-align: start;
287    align-items: flex-start;
288}   
289.media-body{
290    -webkit-box-flex: 1;
291    -ms-flex: 1;
292    flex: 1;
293    box-sizing: border-box;
294    width: unset !important;
295}
296.media img{
297width: 64px;
298height: 64px;
299margin-right: 1rem !important;    
300border-radius: 50%;
301}    
302.text-danger{
303    color: red;
304}
305</style>
306<style>
307#searchModeTabs li:nth-child(3){
308    display:none;
309} 
310</style>
311
312<link rel="stylesheet" href="/css/login.css?v=20260812bg1">
313
314  
314<script>
315            window != top ? window.stop() : null;
316            
317            const Config = {"domainHost":window.location.hostname,"BRegion":null,"Country":"undefined","accessByIp":false};
318            const CurrentUser = new User(null);
319            const CurrentClientIP = "127.0.0.1";
320            const CurrentSiteMode = 'books';
321            const proxiesToCheck = []; //for google verification
322
323
324
325            $(document).ready(function() {
326                if (typeof $.fn.tooltip === 'function') {
327                    $('.tooltip-init').tooltip({html: true});
328                }
329            })
330        </script>
330
331    
332</head>
333
334<body style="margin:0px;padding:0px;" class="subprojects/singlelogin/index singlelogin">
335        <table class="super-puper-main-container" border="0" cellpadding="0" cellspacing="0">
336            <tbody>
337                                <tr>
338                    <td class="g-page-content" style="vertical-align:top;padding-top: 10rem;">
339                        <div class="container">
340                            <div class="row">
341                                <div class="col-md-12 itemFullText">
342                                    
343<div class="row" style="margin: auto auto;">
344    <div class="well login">
345        <a href="/"><img style="width:75%;max-width:268px;display:block;margin:0 auto 32px auto;" src="/img/logo.png" alt="Z-Library"></a>
346        <legend>Single Sign In</legend>
347                <form data-action="login" method="POST" action="https://z-lib.ag/login" accept-charset="UTF-8">
348            <input type="hidden" name="_token" value="IPkuyOGYDJN2wiDKNpLxA73sOkgDEDQ9Hw2exTrf">            <div class="form-group">
349                <input type="text" class="form-control validation-field" name="email" value="" placeholder="Email">
350            </div>
351            <div class="form-group" style="position: relative;">
352                <input type="password" class="form-control form-control-password validation-field" name="password" placeholder="Password">
353                <span class="glyphicon glyphicon-eye-close btn-show-password"></span>
354                <span class="glyphicon glyphicon-eye-open btn-hide-password hidden"></span>
355            </div>
356                            
357    <a class="password-recovery-btn" style="padding-top: 4px; padding-bottom: 8px; display: block; color: #8C8C8C; font-size: 12px;" data-auth_modal_toggle="passwordrecovery" href="https://z-lib.ag/forgot-password">
358        <span>Forgot your password?</span>
359    </a>
360    
361<button type="submit" name="submit" class="btn btn-info btn-block" id="submit-btn" >Sign In</button>
362
363    
364</form>
365    <p style="margin-top:16px;text-align:center"><a href="/cdn-cgi/l/email-protection#4c3f393c3c233e380c3620252e3c3e2921253921622f2321">Cannot sign in? Contact support</a></p>
366
367    <div class="bottom-block">
368        <div class="left">Don&#039;t have an account?</div>
369        <div class="right">
370            <a href="https://z-lib.ag/register">Sign Up</a>
371        </div>
372    </div>
373
374
375    </div>
376
377</div>                                                                    </div>
378                            </div>
379                        </div>
380                    </td>
381                </tr>
382
383
384                <tr style="height:60px">
385                    <td id="footer" valign="top">
386                        <div class="container-fluid"></div>
387                    </td>
388                </tr>
389            </tbody>
390        </table>
391
392        <!-- icons preload hack -->
393        <i class="zlibicon-check" style="font-size: 1px; visibility: hidden; position: absolute; top: 0; left: 0;"></i>
vendor: 118 bytes, lines 393-396
393
394     
395
396<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
396<script>
397(function () {
398    var selector = 'form[method="POST"], form[method="post"]';
399
400    document.addEventListener('submit', function (event) {
401        var form = event.target;
402        if (!(form instanceof HTMLFormElement) || !form.matches(selector)) return;
403
404        if (form.dataset.authSubmitting === '1') {
405            event.preventDefault();
406            return;
407        }
408
409        form.dataset.authSubmitting = '1';
410        form.querySelectorAll('button[type="submit"], input[type="submit"]').forEach(function (button) {
411            button.disabled = true;
412            button.setAttribute('aria-busy', 'true');
413        });
414    }, true);
415
416    window.addEventListener('pageshow', function (event) {
417        if (event.persisted) {
418            window.location.reload();
419            return;
420        }
421
422        document.querySelectorAll(selector).forEach(function (form) {
423            delete form.dataset.authSubmitting;
424            form.querySelectorAll('[aria-busy="true"]').forEach(function (button) {
425                button.disabled = false;
426                button.removeAttribute('aria-busy');
427            });
428        });
429    });
430})();
431</script>
431
432
433    
433<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"54e875dc51f14ff1a3044d9440b58632","r":1,"spa":2}' crossorigin="anonymous"></script>
433
434</body>
435</html>
436

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.