From 957b51b68e28fb73efc3e7c5938c790c6186cd5f Mon Sep 17 00:00:00 2001 From: Noach Magedman Date: Fri, 10 May 2024 02:30:09 +0300 Subject: [PATCH] squash! PATCH: Authenticate via SAPI email/password in Login Form MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit RC 6.6.0 dropped jQuery as a dependency, so replace jQuery’s `$.post().done()` with the standard Fetch API’s `fetch().then()` --- .../AuthenticationProvider.tsx | 47 ++++++++++++------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/apps/meteor/client/providers/AuthenticationProvider/AuthenticationProvider.tsx b/apps/meteor/client/providers/AuthenticationProvider/AuthenticationProvider.tsx index e05061932eb92..8c95fa1afe81f 100644 --- a/apps/meteor/client/providers/AuthenticationProvider/AuthenticationProvider.tsx +++ b/apps/meteor/client/providers/AuthenticationProvider/AuthenticationProvider.tsx @@ -37,25 +37,36 @@ const AuthenticationProvider = ({ children }: AuthenticationProviderProps): Reac loginWithPassword: (user: string | { username: string } | { email: string } | { id: string }, password: string): Promise => new Promise((resolve, reject) => { console.log(`Login via SAPI: Authenticating with email='${user}' password='${password}'`); - $.post( + + const params = new FormData(); + params.append("email", user); + params.append("password", password); + + fetch( `${location.origin.replace('rc.', '')}/authentication/rocketchat_email_password_login`, - { email: user, password }, - ).done((response) => { - if (response.error) { - console.log(`Login via SAPI: Error: ${response.error}`); - reject(new Error(response.error)); - } else { - console.log(`Login via SAPI: Received Token: ${response.rc_token}`); - Meteor.loginWithToken(response.rc_token, (error) => { - if (error) { - console.log(`Login via SAPI: Token rejected: ${error.message}`, error); - reject(new Error('Auth Token received from Seeking Alpha is not valid')); - } else { - resolve(); - } - }); - } - }) + { + method: "POST", + body: params, + cache: "no-cache", + }, + ) + .then((response) => response.json()) + .then((data) => { + if (data.error) { + console.log(`Login via SAPI: Error: ${data.error}`); + reject(new Error(data.error)); + } else { + console.log(`Login via SAPI: Received Token: ${data.rc_token}`); + Meteor.loginWithToken(data.rc_token, (error) => { + if (error) { + console.log(`Login via SAPI: Token rejected: ${error.message}`, error); + reject(new Error('Auth Token received from Seeking Alpha is not valid')); + } else { + resolve(); + } + }); + } + }); }), /* eslint-enable prettier/prettier */ loginWithService: (serviceConfig: T): (() => Promise) => {