azure-ad-auth-kit
Version:
Microsoft Azure AD Auth Kit (OAuth2 login, no config)
93 lines (64 loc) β’ 2.46 kB
Markdown
# Azure AD Auth Kit
Easily integrate Microsoft Azure Active Directory login into your Node.js apps β with full support for **OAuth login** and **SSO silent login**.
## π¦ Installation
```bash
npm install azure-ad-auth-kit
```
After installation, a folder `sso-oauth/` will appear in your project with working backend code.
## π Whatβs Included
| File | Description |
|-------------------------------|---------------------------------------------|
| `sample/sample.js` | Express server for login + token exchange |
| `lib/azureAdAuth.js` | Microsoft token and profile logic |
| `postinstall.js` | Auto-copies files to `sso-oauth/` |
## π Available Routes
| Endpoint | Purpose |
|--------------------|-------------------------------------------------|
| `/login` | Microsoft OAuth2 login with account picker |
| `/silent-login` | Silent login (SSO) if user session is active |
| `/redirect` | Handles `code` exchange, returns user+tokens |
| `/profile` | Returns user profile using access tokens |
## βοΈ Setup
Open `sso-oauth/sample/sample.js` and configure this block at the top:
```js
const config = {
TENANT_ID: "your-tenant-id",
CLIENT_ID: "your-client-id",
CLIENT_SECRET: "your-client-secret",
REDIRECT_URI: "http://localhost:3000/redirect",
JWT_SECRET: "your-super-secret",
FRONTEND_DASHBOARD_URL: "http://localhost:5173/dashboard" // Optional, not used in latest version
};
```
> π‘ You can get these values from Azure β App Registrations β Your App β Overview & Certificates
Also make sure `http://localhost:3000/redirect` is added in Azure β **Authentication β Redirect URIs**
## βΆοΈ Run the Sample
```bash
node sso-oauth/sample/sample.js
```
Then test in browser:
- `http://localhost:3000/login` β OAuth with account picker
- `http://localhost:3000/silent-login` β SSO (silent auth)
- After login β JSON with JWT, graphToken and user
## π§ͺ Sample JSON Response
```json
{
"message": "β
Login Successful",
"from": "OAuth",
"token": "eyJhbGci...",
"graphToken": "eyJ0eXAi...",
"user": {
"email": "awais@x-age.ai",
"name": "Awais",
"id": "c266d1d5-6c79-4028-a93e-1fc10bcb6866"
}
}
```
## π License
MIT Β© Awais Aslam