Search.../

applySessionToken( )

Logs the current member into the site using the given session token.

Description

The applySessionToken() function returns a Promise that resolves when the given session token is applied and the current member is logged into the site.

You receive a session token from the following wix-members-backend functions:

Pass the returned session token to your page code and apply it by calling applySessionToken() to complete the process started by one of the above functions.

Syntax

function applySessionToken(sessionToken: string): Promise<void>

applySessionToken Parameters

NAME
TYPE
DESCRIPTION
sessionToken
string

Session token to apply.

Returns

Fulfilled - When the token is applied.

Return Type:

Promise<void>

Was this helpful?

Log in a member by applying a session token

Copy Code
1import { authentication } from 'wix-members-frontend';
2
3// ...
4
5authentication.applySessionToken(sessionToken)
6 .then(() => {
7 console.log('Member logged in.');
8 });
Register a member using a 3rd party for approval

This example demonstrates a common 3rd-party approval flow. The backend code calls a 3rd-party service that determines whether the member is approved. If approved, the register() function is called from backend code, the registration is approved, and a session token is returned to the calling page code. If rejected, the blockByEmail() function is called.

Copy Code
1/*******************************
2 * Backend code - register.jsw *
3 *******************************/
4import { authentication } from 'wix-members-backend';
5import { approveBy3rdParty } from 'backend/some-backend-module';
6
7export async function doRegistration(email, password, firstName, lastName) {
8
9 // Call a 3rd-party API to check if the member is approved.
10 const isApproved = await approveBy3rdParty(email, password);
11
12 // If member is approved by 3rd party, register and approve with the Wix site
13 if (isApproved === true) {
14 const options = {
15 contactInfo: {
16 firstName: firstName,
17 lastName: lastName
18 }
19 };
20
21 // Register the member
22 const registration = await authentication.register(email, password, options);
23 const approvalToken = registration.approvalToken;
24 console.log('Member is now registered with the site and pending approval');
25
26 // Approve the member and get session token, to be used to log in the member client-side
27 const sessionToken = await authentication.approveByToken(approvalToken);
28 console.log('Member is now approved, but not logged in');
29
30 return {
31 approved: true,
32 sessionToken: sessionToken
33 };
34
35 } else {
36 // If not approved by the 3rd party
37
38 await authentication.blockByEmail(email);
39 console.log('Member not approved by 3rd-party SSO. Blocking from Wix site.');
40
41 return { approved: false };
42 }
43}
44
45
46/*************
47 * Page code *
48 *************/
49import { authentication } from 'wix-members-frontend';
50import { doRegistration } from 'backend/register';
51
52// ...
53
54$w('#register').onClick(() => {
55
56 const email = $w('#email').value;
57 const password = $w('#password').value;
58 const firstName = $w('#firstName').value;
59 const lastName = $w('#lastName').value;
60
61 doRegistration(email, password, firstName, lastName)
62 .then((result) => {
63 if (result.approved) {
64 // Log the member in
65 console.log('Logging in...');
66 authentication.applySessionToken(result.sessionToken);
67 } else {
68 console.log('Not approved!');
69 }
70 });
71});
Log a member in after 3rd-party authentication

This example contains a backend function that uses a 3rd-party service to authenticate a member. If the authentication is successful, a session token is returned to the page and used to log the member in.

Copy Code
1/****************************
2 * Backend code - login.jsw *
3 ***************************/
4
5 import { authentication } from 'wix-members-backend';
6 import { authBy3rdParty } from 'backend/authentications';
7
8 export function getLoginToken(email, password) {
9
10 return authBy3rdParty(email, password)
11 .then((isAuthenticated) => {
12
13 // If authenticated, generate and return the session token
14 if (isAuthenticated) {
15 return authentication.generateSessionToken(email)
16 .then((sessionToken) => {
17 return {
18 sessionToken: sessionToken,
19 approved: true
20 };
21 });
22 }
23
24 // If not authenticated, return non-approval
25 return { approved: false };
26 });
27 }
28
29 /*************
30 * Page code *
31 ************/
32import { getLoginToken } from 'backend/login';
33import { authentication } from 'wix-members-frontend';
34
35// ...
36
37const email = $w('email').value;
38const password = $w('password').value;
39
40// Call the backend function to get the session token
41getLoginToken(email, password)
42 .then((loginResult) => {
43 if (loginResult.approved) {
44 // If approved, log the member in using the returned session token
45 authentication.applySessionToken(loginResult.sessionToken);
46 } else {
47 // If not approved, log a message
48 console.log("Member not approved.");
49 }
50 });
51
Register a member, sending an email for confirmation

This example demonstrates a common email verification flow. A member is initially registered but not yet approved. At registration, a verification email is sent with a link to a verification page. When the member goes to the verification page, the approval is granted and the member is logged into the site.

The code is split between three locations:

  • A backend web module named register.jsw.
  • The page code for the page where members register.
  • The page code for the page where members confirm their registration.

Copy Code
1/*******************************
2 * Backend code - register.jsw *
3 *******************************/
4
5import { authentication } from 'wix-members-backend';
6import { triggeredEmails } from 'wix-crm-backend';
7
8// To be called from the registration page code
9export async function doRegistration(email, password, firstName, lastName) {
10 // Register the member
11 const registrationOptions = {
12 contactInfo: {
13 firstName: firstName,
14 lastName: lastName
15 }
16 };
17 const registration = await authentication.register(email, password, registrationOptions);
18 console.log('Member is now registered with the site and pending approval');
19
20 // Send a registration confirmation email
21 const emailOptions = {
22 variables: {
23 name: firstName,
24 verifyLink: `http://yourdomain.com/post-register?token=${registration.approvalToken}`
25 }
26 };
27 triggeredEmails.emailMember('verifyRegistration', registration.member.id, emailOptions);
28 console.log('Confirmation email sent');
29}
30
31// To be called from the post-registration page code
32export async function doApproval(token) {
33 try {
34 // Approve the member
35 const sessionToken = await authentication.approveByToken(token);
36 console.log('Member approved');
37 return {
38 approved: true,
39 sessionToken: sessionToken
40 };
41 } catch (error) {
42 // If an error is encountered and the member can't be approved
43 console.log('Member not approved');
44 return {
45 approved: false,
46 reason: error
47 };
48 }
49}
50
51/****************************
52 * Page code - registration *
53 ****************************/
54import { doRegistration } from 'backend/register';
55
56// ...
57
58const email = $w('#email').value;
59const password = $w('#password').value;
60const firstName = $w('#firstName').value;
61const lastName = $w('#lastName').value;
62
63doRegistration(email, password, firstName, lastName)
64 .then(() => {
65 console.log('Confirmation email sent.');
66 });
67
68/*********************************
69 * Page code - post-registration *
70 *********************************/
71import wixLocationFrontend from 'wix-location-frontend';
72import { authentication } from 'wix-members-frontend';
73import { doApproval } from 'backend/register';
74
75$w.onReady(async () => {
76 // Get the token from the URL
77 const token = wixLocationFrontend.query.token;
78
79 // Send token to backend code
80 const approval = await doApproval(token);
81
82 if (approval.approved === true) {
83 // Log the member in
84 authentication.applySessionToken(approval.sessionToken);
85 console.log('Member approved & logged in');
86 } else {
87 console.log('Member not approved');
88 }
89});
90