From caafd2b9e3b72456abbe68a8edf1d4d2311f24c0 Mon Sep 17 00:00:00 2001 From: Enas Gaber Date: Mon, 1 Jul 2024 11:14:53 +0200 Subject: [PATCH] Updated the sign in js action to support authentication token. --- packages/jsActions/nanoflow-actions-native/CHANGELOG.md | 4 ++++ .../nanoflow-actions-native/src/client/SignIn.ts | 9 +++++++-- .../jsActions/nanoflow-actions-native/typings/mx.d.ts | 7 +++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/packages/jsActions/nanoflow-actions-native/CHANGELOG.md b/packages/jsActions/nanoflow-actions-native/CHANGELOG.md index 0f9ea6126..af91c2bb3 100644 --- a/packages/jsActions/nanoflow-actions-native/CHANGELOG.md +++ b/packages/jsActions/nanoflow-actions-native/CHANGELOG.md @@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] +- We've added support for the token-based authentication with the SignIn action. This authentication method allows users to remain signed in until the expiration time of the token. You can read more about this behavior on this documentation page https://docs.mendix.com/refguide/session-management/#2-authentication-token + +To enable it you can set the new SignIn action parameter `useAuthToken` to `true`. + ## [4.0.3] Nanoflow Commons - 2024-3-19 ### Fixed diff --git a/packages/jsActions/nanoflow-actions-native/src/client/SignIn.ts b/packages/jsActions/nanoflow-actions-native/src/client/SignIn.ts index 6021a3e37..29b945b72 100644 --- a/packages/jsActions/nanoflow-actions-native/src/client/SignIn.ts +++ b/packages/jsActions/nanoflow-actions-native/src/client/SignIn.ts @@ -20,9 +20,10 @@ import { Big } from "big.js"; * * @param {string} username - This field is required. * @param {string} password - This field is required. + * @param {boolean} useAuthToken - This field is optional. * @returns {Promise.} */ -export async function SignIn(username?: string, password?: string): Promise { +export async function SignIn(username?: string, password?: string, useAuthToken?: boolean): Promise { // BEGIN USER CODE if (!username || !password) { return Promise.resolve(new Big(401)); @@ -32,7 +33,11 @@ export async function SignIn(username?: string, password?: string): Promise const onSuccess = (): void => resolve(new Big(200)); const onError = (error: { status: number }): void => resolve(new Big(error.status)); - mx.login(username, password, onSuccess, onError as any); + if (typeof useAuthToken === "undefined") { + mx.login(username, password, onSuccess, onError as any); + } else { + mx.login2(username, password, Boolean(useAuthToken), onSuccess, onError as any); + } }); // END USER CODE } diff --git a/packages/jsActions/nanoflow-actions-native/typings/mx.d.ts b/packages/jsActions/nanoflow-actions-native/typings/mx.d.ts index f44d425f5..3b4f6acf8 100644 --- a/packages/jsActions/nanoflow-actions-native/typings/mx.d.ts +++ b/packages/jsActions/nanoflow-actions-native/typings/mx.d.ts @@ -11,5 +11,12 @@ declare namespace mx { } interface MxInterface { reload: () => void; + login2( + username: string, + password: string, + useAuthToken: boolean, + onSuccess: () => void, + onError: () => void + ): void; } }