
Product
Introducing the Alert Details Page: A Better Way to Explore Alerts
Socket's new Alert Details page is designed to surface more context, with a clearer layout, reachability dependency chains, and structured review.
@nylas/connect
Advanced tools
🚀 Modern, secure, developer-friendly OAuth connection for Nylas APIs
npm install @nylas/connect
Prerequisites: Node.js 18+ and a modern browser
import { NylasConnect } from '@nylas/connect';
const nylasConnect = new NylasConnect({
clientId: 'your-nylas-client-id',
redirectUri: 'http://localhost:3000/auth/callback'
});
// Connect with popup (recommended)
const result = await nylasConnect.connect({ method: 'popup' });
console.log('Connected as:', result.email);
Environment variables (recommended):
// Use environment variables
const nylasConnect = new NylasConnect();
// Reads from NYLAS_CLIENT_ID and NYLAS_REDIRECT_URI
const result = await nylasConnect.connect({ method: 'popup' });
const url = await nylasConnect.connect({ method: 'inline' });
window.location.href = url;
// At your redirect URI (e.g., /auth/callback)
await nylasConnect.callback();
NYLAS_CLIENT_ID=your-nylas-client-id
NYLAS_REDIRECT_URI=http://localhost:3000/auth/callback
Note: With modern bundlers, prefix environment variables:
VITE_NYLAS_CLIENT_IDNEXT_PUBLIC_NYLAS_CLIENT_ID// Check current session
const session = await nylasConnect.getSession();
if (session) {
console.log('User:', session.grantInfo?.email);
}
// Logout
await nylasConnect.logout();
try {
await nylasConnect.connect({ method: 'popup' });
} catch (error) {
console.error('Connection failed:', error.message);
}
| Option | Type | Default | Description |
|---|---|---|---|
clientId | string | - | Nylas Client ID |
redirectUri | string | - | OAuth redirect URI |
apiUrl | string | https://api.us.nylas.com | API base URL |
persistTokens | boolean | true | Store tokens in localStorage |
debug | boolean | true on localhost | Enable debug logging |
connect(options?)Start OAuth flow. Returns ConnectResult for popup or URL string for redirect.
// Popup
await nylasConnect.connect({ method: 'popup' });
// Redirect
const url = await nylasConnect.connect({ method: 'inline' });
callback(url?)Handle OAuth callback. Auto-detects current URL if none provided.
getSession(grantId?)Get current session. Returns null if no active session.
logout(grantId?)Clear stored tokens and logout.
For server-side token exchange:
// Client: build auth URL without PKCE
const { url, state } = await nylasConnect.getAuthUrl();
window.location.href = url;
// Server: exchange code using Nylas Node SDK
const { grantId } = await nylas.auth.exchangeCodeForToken({
clientId: process.env.NYLAS_CLIENT_ID,
clientSecret: process.env.NYLAS_CLIENT_SECRET,
code: req.query.code,
redirectUri: process.env.NYLAS_REDIRECT_URI
});
await nylasConnect.connect({
method: 'popup',
scopes: ['https://www.googleapis.com/auth/gmail.readonly']
});
const unsubscribe = nylasConnect.onConnectStateChange((event, session) => {
if (event === 'CONNECT_SUCCESS') {
console.log('Connected:', session?.grantInfo?.email);
}
});
// Clean up
unsubscribe();
Popup: Better UX, works in SPAs, requires popup permission
Redirect: Works everywhere, better for mobile, full page navigation
Usually no. Nylas handles default scopes automatically. Override only for specific provider permissions.
Match your Nylas account region:
https://api.us.nylas.comhttps://api.eu.nylas.comAutomatic. @nylas/connect handles token refresh in the background.
MIT © Nylas
FAQs
Modern, lightweight Nylas connection library with PKCE support
The npm package @nylas/connect receives a total of 4,194 weekly downloads. As such, @nylas/connect popularity was classified as popular.
We found that @nylas/connect demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket's new Alert Details page is designed to surface more context, with a clearer layout, reachability dependency chains, and structured review.

Product
Campaign-level threat intelligence in Socket now shows when active supply chain attacks affect your repositories and packages.

Research
Malicious PyPI package sympy-dev targets SymPy users, a Python symbolic math library with 85 million monthly downloads.