@msout/microsoft-webauth
v0.0.9
Published
Microsoft web authentication module, using playwright to automate the login process and retrieve cookies for authenticated sessions.
Maintainers
Readme
microsoft-webauth
A tool to authenticate against microsoft online (live or professionnal tenants) We do not rely on GraphAPI.
e.g:
- https://onenote.cloud.microsoft/notebooks
- https://outlook.live.com/mail/
- and by extension https://login.microsoft.com
Microsoft web authentication via Playwright — extracted from MSOneNote Exporter. I did extract it realising it might be useful out of the box for other projects. And it will make it easier to maintain as far as I see it.
This is a standalone CLI tool for authenticating with Microsoft accounts using Playwright. It handles:
- NO GraphAPI
- Automated login with email/password
- Manual login in browser
- MFA/2FA support (OTC codes, number matching)
- Session persistence
Why this project ?
While this let you authenticate this is a part of a bigger purpose, primary aim is to offer people a simple way to get out of Microsoft OneNote, because you regardless of what ms documentation states => https://learn.microsoft.com/en-us/answers/questions/2276682/onenote-api-fails-with-large-sharepoint-document-l
in essence you want to search for microsoft-onenote-list-notebook, microsoft-onenote-exporter
Available on npmjs
You can find this package here: https://www.npmjs.com/package/@msout/microsoft-webauth
Installation
npm install -g @msout/microsoft-webauthOr locally:
npm install @msout/microsoft-webauthUsage
Login (Automated)
microsoft-webauth login --email [email protected] --password yourpasswordWith custom auth file path:
microsoft-webauth login --email [email protected] --password yourpassword --auth-file /path/to/authfile.jsonLogin (Manual/Interactive)
microsoft-webauth loginThis will open a browser window. Log in manually, then press Enter when you see the notebooks list.
With custom auth file path:
microsoft-webauth login --auth-file /path/to/authfile.jsonCheck Authentication Status
microsoft-webauth checkWith custom auth file path:
microsoft-webauth check --auth-file /path/to/authfile.jsonLogout
microsoft-webauth logoutWith custom auth file path:
microsoft-webauth logout --auth-file /path/to/authfile.jsonOptions
| Option | Description |
|--------|-------------|
| --email <email> | Microsoft account email (for automated login) |
| --password <password> | Microsoft account password (for automated login) |
| --notheadless | Run in visible browser mode (disable headless) |
| --dodump | Dump HTML content to files for debugging |
| --auth-file <path> | Path to auth file (default: ~/.microsoft-webauth/auth-file.json) |
Output
Authentication state is saved to the specified auth file path. By default, it uses ~/.microsoft-webauth/auth-file.json. A metadata file {auth-file-prefix}-meta.json stores:
- Email used for login
- Login timestamp
When files already exist, they are automatically backed up with .old suffix. If .old files already exist, a warning is displayed before overwriting.
Testing
npm testRun with coverage:
npm run test:coverageProject Structure
microsoft-webauth-playwright/
├── src/
│ ├── auth.js # Authentication logic
│ ├── config.js # Configuration (paths, URLs)
│ └── utils/
│ ├── logger.js # Logging utilities
│ └── retry.js # Retry helpers
├── test/ # Jest tests
├── package.json
└── README.mdLicense
ISC — same as MSOneNote Exporter.
