mirror of
https://github.com/cheveguerra/whatsapp-web.js.git
synced 2026-04-18 03:29:14 +00:00
feat: RemoteAuth Strategy (#1450)
* index.js * [authReady] - new BaseAuthStrategy function * [RemoteAuth] - new Class RemoteAuth added * Eslint Fixes * Eslint Fixes * Added types for RemoteAuth (mostly assumed types from PR message and src/authStrategies/RemoteAuth.js) * [dependency updates] - added unzipper & archiver * [Types] - Fixing typescript declarations * Renaming Base Class Hook * auth hook rename on client * [Error Handling] - Delegate responsability to end users * [Refactor] - deletemetadata code refactor * [Refactor] - backupSyncIntervalMs renamed * [Refactor] - Minor improvement on deleteMetadata * [Refactor] - backupSyncIntervalMs rename on index.d.ts * [Update] - Fix for Ubuntu crahsing on extractSession * [Update] - Delegate responsability to stores of making sure the previous session is deleted strictly only after the new one is saved * [Update] - Improve file paths handling & naming (reduce assumptions between RemoteAuth and stores) * [Update] - Adding new event <REMOTE_SESSION_SAVED> on Constants.js * [Update] - Adding new authHooks <destroy> & <disconnect> * [Update] - Adding <destroy> & <disconnect> hooks on Client.js * [Update] - Adding new features to index.d.ts * [RemoteAuth] - New Features added to RemoteAuth Class * [dependency updates] - added fs-extra * [Cross Platform] - Windows is now compatible with RemoteAuth * [optionalDependencies] - moved archiver, fs-extra & unzipper to optional dependencies on package.json * [optionalDependencies] - adding validation for when optional dependencies are missing * [Update] - Node Deprecation warining for rmdir changed for rm instead Co-authored-by: h110m <nichtwitzig228@gmail.com>
This commit is contained in:
@@ -419,7 +419,7 @@ class Client extends EventEmitter {
|
||||
this.emit(Events.MEDIA_UPLOADED, message);
|
||||
});
|
||||
|
||||
await page.exposeFunction('onAppStateChangedEvent', (state) => {
|
||||
await page.exposeFunction('onAppStateChangedEvent', async (state) => {
|
||||
|
||||
/**
|
||||
* Emitted when the connection state changes
|
||||
@@ -446,6 +446,7 @@ class Client extends EventEmitter {
|
||||
* @event Client#disconnected
|
||||
* @param {WAState|"NAVIGATION"} reason reason that caused the disconnect
|
||||
*/
|
||||
await this.authStrategy.disconnect();
|
||||
this.emit(Events.DISCONNECTED, state);
|
||||
this.destroy();
|
||||
}
|
||||
@@ -548,11 +549,13 @@ class Client extends EventEmitter {
|
||||
* @event Client#ready
|
||||
*/
|
||||
this.emit(Events.READY);
|
||||
this.authStrategy.afterAuthReady();
|
||||
|
||||
// Disconnect when navigating away when in PAIRING state (detect logout)
|
||||
this.pupPage.on('framenavigated', async () => {
|
||||
const appState = await this.getState();
|
||||
if(!appState || appState === WAState.PAIRING) {
|
||||
await this.authStrategy.disconnect();
|
||||
this.emit(Events.DISCONNECTED, 'NAVIGATION');
|
||||
await this.destroy();
|
||||
}
|
||||
@@ -564,6 +567,7 @@ class Client extends EventEmitter {
|
||||
*/
|
||||
async destroy() {
|
||||
await this.pupBrowser.close();
|
||||
await this.authStrategy.destroy();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user