125 lines
No EOL
4.3 KiB
HTML
Generated
125 lines
No EOL
4.3 KiB
HTML
Generated
<!doctype html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta name="generator" content="JSDoc 3.6.11">
|
|
<meta charset="utf-8">
|
|
<title>whatsapp-web.js 1.34.7 » Source: authStrategies/LocalAuth.js</title>
|
|
<link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Karla:400,400i,700,700i" type="text/css">
|
|
<link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Noto+Serif:400,400i,700,700i" type="text/css">
|
|
<link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Inconsolata:500" type="text/css">
|
|
<link href="css/baseline.css" rel="stylesheet">
|
|
</head>
|
|
|
|
<body onload="prettyPrint()">
|
|
<nav id="jsdoc-navbar" role="navigation" class="jsdoc-navbar">
|
|
<div id="jsdoc-navbar-container">
|
|
<div id="jsdoc-navbar-content">
|
|
<a href="index.html" class="jsdoc-navbar-package-name">whatsapp-web.<wbr>js 1.<wbr>34.<wbr>7</a>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
<div id="jsdoc-body-container">
|
|
<div id="jsdoc-content">
|
|
<div id="jsdoc-content-container">
|
|
<div id="jsdoc-banner" role="banner">
|
|
</div>
|
|
<div id="jsdoc-main" role="main">
|
|
<header class="page-header">
|
|
<h1>Source: authStrategies/LocalAuth.js</h1>
|
|
</header>
|
|
<article>
|
|
<pre class="prettyprint linenums"><code>'use strict';
|
|
|
|
const path = require('path');
|
|
const fs = require('fs');
|
|
const BaseAuthStrategy = require('./BaseAuthStrategy');
|
|
|
|
/**
|
|
* Local directory-based authentication
|
|
* @param {object} options - options
|
|
* @param {string} options.clientId - Client id to distinguish instances if you are using multiple, otherwise keep null if you are using only one instance
|
|
* @param {string} options.dataPath - Change the default path for saving session files, default is: "./.wwebjs_auth/"
|
|
* @param {number} options.rmMaxRetries - Sets the maximum number of retries for removing the session directory
|
|
*/
|
|
class LocalAuth extends BaseAuthStrategy {
|
|
constructor({ clientId, dataPath, rmMaxRetries } = {}) {
|
|
super();
|
|
|
|
const idRegex = /^[-_\w]+$/i;
|
|
if (clientId &amp;&amp; !idRegex.test(clientId)) {
|
|
throw new Error(
|
|
'Invalid clientId. Only alphanumeric characters, underscores and hyphens are allowed.',
|
|
);
|
|
}
|
|
|
|
this.dataPath = path.resolve(dataPath || './.wwebjs_auth/');
|
|
this.clientId = clientId;
|
|
this.rmMaxRetries = rmMaxRetries ?? 4;
|
|
}
|
|
|
|
async beforeBrowserInitialized() {
|
|
const puppeteerOpts = this.client.options.puppeteer;
|
|
const sessionDirName = this.clientId
|
|
? `session-${this.clientId}`
|
|
: 'session';
|
|
const dirPath = path.join(this.dataPath, sessionDirName);
|
|
|
|
if (
|
|
puppeteerOpts.userDataDir &amp;&amp;
|
|
puppeteerOpts.userDataDir !== dirPath
|
|
) {
|
|
throw new Error(
|
|
'LocalAuth is not compatible with a user-supplied userDataDir.',
|
|
);
|
|
}
|
|
|
|
fs.mkdirSync(dirPath, { recursive: true });
|
|
|
|
this.client.options.puppeteer = {
|
|
...puppeteerOpts,
|
|
userDataDir: dirPath,
|
|
};
|
|
|
|
this.userDataDir = dirPath;
|
|
}
|
|
|
|
async logout() {
|
|
if (this.userDataDir) {
|
|
await fs.promises
|
|
.rm(this.userDataDir, {
|
|
recursive: true,
|
|
force: true,
|
|
maxRetries: this.rmMaxRetries,
|
|
})
|
|
.catch((e) => {
|
|
throw new Error(e);
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = LocalAuth;
|
|
</code></pre>
|
|
</article>
|
|
</div>
|
|
</div>
|
|
<nav id="jsdoc-toc-nav" role="navigation"></nav>
|
|
</div>
|
|
</div>
|
|
<footer id="jsdoc-footer" class="jsdoc-footer">
|
|
<div id="jsdoc-footer-container">
|
|
<p>
|
|
Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc</a> 3.6.11 on April 24, 2026.
|
|
</p>
|
|
</div>
|
|
</footer>
|
|
<script src="scripts/jquery.min.js"></script>
|
|
<script src="scripts/tree.jquery.js"></script>
|
|
<script src="scripts/prettify.js"></script>
|
|
<script src="scripts/jsdoc-toc.js"></script>
|
|
<script src="scripts/linenumber.js"></script>
|
|
<script src="scripts/scrollanchor.js"></script>
|
|
</body>
|
|
|
|
</html> |