B2B Saas Authentication

/

Frontend SDKs

/

Headless

/

Session Management

/

Exchange Session

Exchange session

Wraps Stytch's Exchange Session endpoint and exchanges the member's current session for a session in the specified Organization.

If this method succeeds and the Member is not required to complete MFA, the Member will be logged in, granted an active session, and the session cookies will be minted and stored in the browser.

If this method succeeds and MFA is required, the intermediate session token will be stored in the browser as a cookie.

You can listen for successful login events anywhere in the codebase with the stytch.session.onChange() method or useStytchMemberSession hook if you are using React.


Method parameters


organization_id*string

session_duration_minutes*int

localestring

Response fields


request_idstring

status_codeint

member_idstring

session_jwtstring

session_tokenstring

intermediate_session_tokenstring

member_authenticatedboolean

mfa_requiredobject

member_sessionobject

memberobject

organizationobject
import { useStytchB2BClient } from '@stytch/react/b2b';

export const Login = () => {
  const stytch = useStytchB2BClient();

  const exchange = () => {
    stytch.session.exchange({
      organization_id: 'organization-test-07971b06-ac8b-4cdb-9c15-63b17e653931',
      session_duration_minutes: 60,
    });
  };

  return <button onClick={exchange}>Log in</button>;
};

RESPONSE

200
{
	"request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
	"status_code": 200,
	"member_id": "member-test-32fc5024-9c09-4da3-bd2e-c9ce4da9375f",
	"session_jwt": "example_jwt",
	"session_token": "mZAYn5aLEqKUlZ_Ad9U_fWr38GaAQ1oFAhT8ds245v7Q",
	"intermediate_session_token": "",
	"member_authenticated": true,
	"mfa_required": null,
	"member_session": {...},
	"member": {...},
	"organization": {...}
}