npm install @stytch/vanilla-js
The vanilla Stytch Javascript SDK is built on open web standards and is compatible with all Javascript frameworks.
The Stytch UI Client provides methods for interacting with the Stytch API from a browser environment, along with prebuilt UI components such as our login form.
import { StytchUIClient } from '@stytch/vanilla-js';
const stytch = new StytchUIClient('public-token-test-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx');
// Call Stytch APIs from the browser
stytch.magicLinks.email.loginOrCreate('charles.babbage@example.com');
// Render prebuilt UI
stytch.mountLogin({
elementId: '#magic-link',
config: {
products: ['emailMagicLinks', 'oauth'],
emailMagicLinksOptions: {
loginRedirectURL: 'https://example.com/authenticate',
loginExpirationMinutes: 30,
signupRedirectURL: 'https://example.com/authenticate',
signupExpirationMinutes: 30,
createUserAsPending: true,
},
oauthOptions: {
providers: [{ type: 'google' }, { type: 'microsoft' }, { type: 'apple' }],
loginRedirectURL: 'https://example.com/authenticate',
signupRedirectURL: 'https://example.com/authenticate',
},
},
});
Developers that don't use Stytch UI elements can use the StytchHeadlessClient
instead, which is significantly smaller!
import { StytchHeadlessClient } from '@stytch/vanilla-js/headless';
const stytch = new StytchHeadlessClient('public-token-test-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx');
// Call Stytch APIs from the browser
stytch.magicLinks.email.loginOrCreate('charles.babbage@example.com');
The Stytch UI Client provides methods for interacting with the Stytch API from a browser environment, along with prebuilt UI components such as our login form.
import { StytchB2BUIClient } from '@stytch/vanilla-js/b2b';
const stytch = new StytchB2BUIClient('public-token-test-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx');
// Call Stytch APIs from the browser
stytch.magicLinks.email.loginOrSignup({
email_address: 'charles.babbage@example.com',
organization_id: 'organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931',
});
// Render prebuilt UI
stytch.mount({
elementId: '#magic-link',
config: {
authFlowType: 'Discovery',
products: ['emailMagicLinks', 'oauth'],
emailMagicLinksOptions: {
loginRedirectURL: 'https://example.com/authenticate',
signupRedirectURL: 'https://example.com/authenticate',
},
oauthOptions: {
providers: [{ type: 'google' }, { type: 'microsoft' }],
loginRedirectURL: 'https://example.com/authenticate',
signupRedirectURL: 'https://example.com/authenticate',
},
sessionOptions: {
sessionDurationMinutes: 60,
},
},
});
Developers that don't use Stytch UI elements can use the StytchB2BHeadlessClient
instead, which is significantly smaller!
import { StytchB2BHeadlessClient } from '@stytch/vanilla-js/b2b/headless';
const stytch = new StytchB2BHeadlessClient('public-token-test-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx');
// Call Stytch APIs from the browser
stytch.magicLinks.email.loginOrSignup({
email_address: 'charles.babbage@example.com',
organization_id: 'organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931',
});
For more information on how to use the Stytch SDK, please refer to the docs.
- For usage with React: see the @stytch/react library and sample app
- For usage with Next.js: see the @stytch/nextjs library and sample app