diff --git a/dist/index.d.ts b/dist/index.d.ts index f2577c9..3edf1f0 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -52,6 +52,7 @@ declare const datasquirel: { sendEmailCode: (_: import("./package-shared/types").SendEmailCodeParams) => Promise; update: (_: import("./package-shared/types").UpdateUserParams) => Promise; resetPassword: (_: import("./package-shared/types").ResetPasswordParams) => Promise; + googleLogin: (_: import("./package-shared/types").GoogleAuthParams) => Promise; logout: typeof import("./package-shared/actions/users/logout-user").default; auth: typeof import("./package-shared/actions/users/user-auth").default; }; @@ -73,6 +74,7 @@ declare const datasquirel: { sendEmailCode: (_: import("./package-shared/types").SendEmailCodeParams) => Promise; update: (_: import("./package-shared/types").UpdateUserParams) => Promise; resetPassword: (_: import("./package-shared/types").ResetPasswordParams) => Promise; + googleLogin: (_: import("./package-shared/types").GoogleAuthParams) => Promise; logout: typeof import("./package-shared/actions/users/logout-user").default; auth: typeof import("./package-shared/actions/users/user-auth").default; }; diff --git a/dist/package-shared/actions/users/login-user.js b/dist/package-shared/actions/users/login-user.js index db2eac2..f6b54f3 100644 --- a/dist/package-shared/actions/users/login-user.js +++ b/dist/package-shared/actions/users/login-user.js @@ -118,7 +118,7 @@ function loginUser(_a) { } const cookieNames = (0, get_auth_cookie_names_1.default)({ database, - userId: apiUserID, + userId: apiUserID || process.env.DSQL_API_USER_ID, }); if (httpResponse.csrf && !skipWriteAuthFile) { (0, write_auth_files_1.writeAuthFile)(httpResponse.csrf, JSON.stringify(httpResponse.payload), cleanupTokens && ((_b = httpResponse.payload) === null || _b === void 0 ? void 0 : _b.id) diff --git a/dist/package-shared/actions/users/social/google-auth.d.ts b/dist/package-shared/actions/users/social/google-auth.d.ts index 4481455..561a3b4 100644 --- a/dist/package-shared/actions/users/social/google-auth.d.ts +++ b/dist/package-shared/actions/users/social/google-auth.d.ts @@ -1,27 +1,5 @@ -import http from "http"; -import { APILoginFunctionReturn } from "../../../types"; -type Param = { - key?: string; - token: string; - database?: string; - response?: http.ServerResponse; - encryptionKey?: string; - encryptionSalt?: string; - additionalFields?: string[]; - additionalData?: { - [s: string]: string | number; - }; - apiUserID?: string | number; - debug?: boolean; - secureCookie?: boolean; - loginOnly?: boolean; - /** - * Login without calling external API - */ - forceLocal?: boolean; -}; +import { APIResponseObject, GoogleAuthParams } from "../../../types"; /** * # SERVER FUNCTION: Login with google Function */ -export default function googleAuth({ key, token, database, response, encryptionKey, encryptionSalt, additionalFields, additionalData, apiUserID, debug, secureCookie, loginOnly, forceLocal, }: Param): Promise; -export {}; +export default function googleAuth({ apiKey, token, database, response, encryptionKey, encryptionSalt, additionalFields, additionalData, apiUserID, debug, secureCookie, loginOnly, useLocal, apiVersion, }: GoogleAuthParams): Promise; diff --git a/dist/package-shared/actions/users/social/google-auth.js b/dist/package-shared/actions/users/social/google-auth.js index 74f48b3..05f209a 100644 --- a/dist/package-shared/actions/users/social/google-auth.js +++ b/dist/package-shared/actions/users/social/google-auth.js @@ -14,21 +14,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); exports.default = googleAuth; const encrypt_1 = __importDefault(require("../../../functions/dsql/encrypt")); -const grab_host_names_1 = __importDefault(require("../../../utils/grab-host-names")); const api_google_login_1 = __importDefault(require("../../../functions/api/users/social/api-google-login")); const get_auth_cookie_names_1 = __importDefault(require("../../../functions/backend/cookies/get-auth-cookie-names")); const write_auth_files_1 = require("../../../functions/backend/auth/write-auth-files"); const grab_cookie_expirt_date_1 = __importDefault(require("../../../utils/grab-cookie-expirt-date")); +const query_dsql_api_1 = __importDefault(require("../../../functions/api/query-dsql-api")); +const grab_api_path_1 = __importDefault(require("../../../utils/backend/users/grab-api-path")); /** * # SERVER FUNCTION: Login with google Function */ function googleAuth(_a) { - return __awaiter(this, arguments, void 0, function* ({ key, token, database, response, encryptionKey, encryptionSalt, additionalFields, additionalData, apiUserID, debug, secureCookie, loginOnly, forceLocal, }) { + return __awaiter(this, arguments, void 0, function* ({ apiKey, token, database, response, encryptionKey, encryptionSalt, additionalFields, additionalData, apiUserID, debug, secureCookie, loginOnly, useLocal, apiVersion, }) { var _b; - const grabedHostNames = (0, grab_host_names_1.default)({ - userId: apiUserID || process.env.DSQL_API_USER_ID, - }); - const { host, port, scheme, user_id } = grabedHostNames; const COOKIE_EXPIRY_DATE = (0, grab_cookie_expirt_date_1.default)(); const finalEncryptionKey = encryptionKey || process.env.DSQL_ENCRYPTION_PASSWORD; const finalEncryptionSalt = encryptionSalt || process.env.DSQL_ENCRYPTION_SALT; @@ -66,58 +63,32 @@ function googleAuth(_a) { let httpResponse = { success: false, }; - if (forceLocal) { + const googleAuthParams = { + token, + additionalFields, + additionalData, + debug, + loginOnly, + database, + apiUserId: apiUserID || process.env.DSQL_API_USER_ID, + }; + if (useLocal) { if (debug) { console.log(`Google login with Local Paradigm ...`); } - httpResponse = yield (0, api_google_login_1.default)({ - token, - additionalFields, - additionalData, - debug, - loginOnly, - }); + httpResponse = yield (0, api_google_login_1.default)(googleAuthParams); } else { - httpResponse = yield new Promise((resolve, reject) => { - const reqPayload = JSON.stringify({ - token, + httpResponse = yield (0, query_dsql_api_1.default)({ + path: (0, grab_api_path_1.default)({ + paradigm: "auth", + action: "google-login", database, - additionalFields, - additionalData, - }); - const httpsRequest = scheme.request({ - method: "POST", - headers: { - "Content-Type": "application/json", - "Content-Length": Buffer.from(reqPayload).length, - Authorization: key || - process.env.DSQL_FULL_ACCESS_API_KEY || - process.env.DSQL_API_KEY, - }, - port, - hostname: host, - path: `/api/user/${apiUserID || grabedHostNames.user_id}/google-login`, - }, - /** - * Callback Function - * - * @description https request callback - */ - (response) => { - var str = ""; - response.on("data", function (chunk) { - str += chunk; - }); - response.on("end", function () { - resolve(JSON.parse(str)); - }); - response.on("error", (err) => { - reject(err); - }); - }); - httpsRequest.write(reqPayload); - httpsRequest.end(); + apiVersion, + }), + apiKey, + body: googleAuthParams, + method: "POST", }); } /** @@ -133,7 +104,7 @@ function googleAuth(_a) { }); const cookieNames = (0, get_auth_cookie_names_1.default)({ database, - userId: user_id, + userId: apiUserID || process.env.DSQL_API_USER_ID, }); if (httpResponse.csrf) { (0, write_auth_files_1.writeAuthFile)(httpResponse.csrf, JSON.stringify(httpResponse.payload)); diff --git a/dist/package-shared/actions/users/validate-temp-email-code.d.ts b/dist/package-shared/actions/users/validate-temp-email-code.d.ts new file mode 100644 index 0000000..b02cc0b --- /dev/null +++ b/dist/package-shared/actions/users/validate-temp-email-code.d.ts @@ -0,0 +1,15 @@ +import http from "http"; +import { SendOneTimeCodeEmailResponse } from "../../types"; +type Param = { + request?: http.IncomingMessage & { + [s: string]: any; + }; + cookieString?: string; + email?: string; + code?: string; +}; +/** + * # Verify the temp email code sent to the user's email address + */ +export default function validateTempEmailCode({ request, email, cookieString, code, }: Param): Promise; +export {}; diff --git a/dist/package-shared/actions/users/validate-temp-email-code.js b/dist/package-shared/actions/users/validate-temp-email-code.js new file mode 100644 index 0000000..5ad9572 --- /dev/null +++ b/dist/package-shared/actions/users/validate-temp-email-code.js @@ -0,0 +1,47 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = validateTempEmailCode; +const get_auth_cookie_names_1 = __importDefault(require("../../functions/backend/cookies/get-auth-cookie-names")); +const parseCookies_1 = __importDefault(require("../../utils/backend/parseCookies")); +const decrypt_1 = __importDefault(require("../../functions/dsql/decrypt")); +const ejson_1 = __importDefault(require("../../utils/ejson")); +/** + * # Verify the temp email code sent to the user's email address + */ +function validateTempEmailCode(_a) { + return __awaiter(this, arguments, void 0, function* ({ request, email, cookieString, code, }) { + try { + const keyNames = (0, get_auth_cookie_names_1.default)(); + const oneTimeCodeCookieName = keyNames.oneTimeCodeName; + const cookies = (0, parseCookies_1.default)({ request, cookieString }); + const encryptedOneTimeCode = cookies[oneTimeCodeCookieName]; + const encryptedPayload = (0, decrypt_1.default)({ + encryptedString: encryptedOneTimeCode, + }); + const payload = ejson_1.default.parse(encryptedPayload); + if ((payload === null || payload === void 0 ? void 0 : payload.email) && !email) { + return payload; + } + if ((payload === null || payload === void 0 ? void 0 : payload.email) && payload.email === email) { + return payload; + } + return null; + } + catch (error) { + console.log("validateTempEmailCode error:", error.message); + return null; + } + }); +} diff --git a/dist/package-shared/api/user/index.d.ts b/dist/package-shared/api/user/index.d.ts index da4a93d..9870769 100644 --- a/dist/package-shared/api/user/index.d.ts +++ b/dist/package-shared/api/user/index.d.ts @@ -1,6 +1,6 @@ import logoutUser from "../../actions/users/logout-user"; import userAuth from "../../actions/users/user-auth"; -import { AddUserParams, GetUserParams, LoginUserParam, ResetPasswordParams, SendEmailCodeParams, UpdateUserParams } from "../../types"; +import { AddUserParams, GetUserParams, GoogleAuthParams, LoginUserParam, ResetPasswordParams, SendEmailCodeParams, UpdateUserParams } from "../../types"; type Params = { local?: boolean; }; @@ -12,6 +12,7 @@ export default function user(params?: Params): { sendEmailCode: (_: SendEmailCodeParams) => Promise; update: (_: UpdateUserParams) => Promise; resetPassword: (_: ResetPasswordParams) => Promise; + googleLogin: (_: GoogleAuthParams) => Promise; logout: typeof logoutUser; auth: typeof userAuth; }; diff --git a/dist/package-shared/api/user/index.js b/dist/package-shared/api/user/index.js index e89dc47..92c15b4 100644 --- a/dist/package-shared/api/user/index.js +++ b/dist/package-shared/api/user/index.js @@ -19,6 +19,7 @@ const login_user_1 = __importDefault(require("../../actions/users/login-user")); const logout_user_1 = __importDefault(require("../../actions/users/logout-user")); const reset_password_1 = __importDefault(require("../../actions/users/reset-password")); const send_email_code_1 = __importDefault(require("../../actions/users/send-email-code")); +const google_auth_1 = __importDefault(require("../../actions/users/social/google-auth")); const update_user_1 = __importDefault(require("../../actions/users/update-user")); const user_auth_1 = __importDefault(require("../../actions/users/user-auth")); function user(params) { @@ -54,6 +55,11 @@ function user(params) { return yield (0, reset_password_1.default)(Object.assign(Object.assign({}, _), { useLocal: true })); }) : reset_password_1.default, + googleLogin: (params === null || params === void 0 ? void 0 : params.local) + ? (_) => __awaiter(this, void 0, void 0, function* () { + return yield (0, google_auth_1.default)(Object.assign(Object.assign({}, _), { useLocal: true })); + }) + : google_auth_1.default, logout: logout_user_1.default, auth: user_auth_1.default, }, diff --git a/dist/package-shared/functions/api/social-login/handleSocialDb.d.ts b/dist/package-shared/functions/api/social-login/handleSocialDb.d.ts index 07adb30..a64ed0f 100644 --- a/dist/package-shared/functions/api/social-login/handleSocialDb.d.ts +++ b/dist/package-shared/functions/api/social-login/handleSocialDb.d.ts @@ -2,4 +2,4 @@ import { APILoginFunctionReturn, HandleSocialDbFunctionParams } from "../../../t /** * # Handle Social DB */ -export default function handleSocialDb({ database, email, social_platform, payload, invitation, supEmail, additionalFields, debug, loginOnly, }: HandleSocialDbFunctionParams): Promise; +export default function handleSocialDb({ database, email, social_platform, payload, invitation, supEmail, additionalFields, debug, loginOnly, apiUserId, }: HandleSocialDbFunctionParams): Promise; diff --git a/dist/package-shared/functions/api/social-login/handleSocialDb.js b/dist/package-shared/functions/api/social-login/handleSocialDb.js index 76c92fd..0a4ce0f 100644 --- a/dist/package-shared/functions/api/social-login/handleSocialDb.js +++ b/dist/package-shared/functions/api/social-login/handleSocialDb.js @@ -22,14 +22,18 @@ const encrypt_1 = __importDefault(require("../../dsql/encrypt")); const addDbEntry_1 = __importDefault(require("../../backend/db/addDbEntry")); const loginSocialUser_1 = __importDefault(require("./loginSocialUser")); const grab_dir_names_1 = __importDefault(require("../../../utils/backend/names/grab-dir-names")); +const grab_db_full_name_1 = __importDefault(require("../../../utils/grab-db-full-name")); /** * # Handle Social DB */ function handleSocialDb(_a) { - return __awaiter(this, arguments, void 0, function* ({ database, email, social_platform, payload, invitation, supEmail, additionalFields, debug, loginOnly, }) { + return __awaiter(this, arguments, void 0, function* ({ database, email, social_platform, payload, invitation, supEmail, additionalFields, debug, loginOnly, apiUserId, }) { var _b; try { - const finalDbName = database ? database : "datasquirel"; + const finalDbName = (0, grab_db_full_name_1.default)({ + dbName: database, + userId: apiUserId, + }); const existingSocialUserQUery = `SELECT * FROM users WHERE email = ? AND social_login='1' AND social_platform = ? `; const existingSocialUserValues = [email, social_platform]; if (debug) { diff --git a/dist/package-shared/functions/api/users/social/api-google-login.d.ts b/dist/package-shared/functions/api/users/social/api-google-login.d.ts index b3bbbf7..b06dc37 100644 --- a/dist/package-shared/functions/api/users/social/api-google-login.d.ts +++ b/dist/package-shared/functions/api/users/social/api-google-login.d.ts @@ -2,4 +2,4 @@ import { APIGoogleLoginFunctionParams, APILoginFunctionReturn } from "../../../. /** * # API google login */ -export default function apiGoogleLogin({ token, database, additionalFields, additionalData, debug, loginOnly, }: APIGoogleLoginFunctionParams): Promise; +export default function apiGoogleLogin({ token, database, additionalFields, additionalData, debug, loginOnly, apiUserId, }: APIGoogleLoginFunctionParams): Promise; diff --git a/dist/package-shared/functions/api/users/social/api-google-login.js b/dist/package-shared/functions/api/users/social/api-google-login.js index 35d7775..29804de 100644 --- a/dist/package-shared/functions/api/users/social/api-google-login.js +++ b/dist/package-shared/functions/api/users/social/api-google-login.js @@ -20,7 +20,7 @@ const ejson_1 = __importDefault(require("../../../../utils/ejson")); * # API google login */ function apiGoogleLogin(_a) { - return __awaiter(this, arguments, void 0, function* ({ token, database, additionalFields, additionalData, debug, loginOnly, }) { + return __awaiter(this, arguments, void 0, function* ({ token, database, additionalFields, additionalData, debug, loginOnly, apiUserId, }) { try { const gUser = yield new Promise((resolve, reject) => { https_1.default @@ -71,13 +71,14 @@ function apiGoogleLogin(_a) { additionalFields, debug, loginOnly, + apiUserId, }); //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// return Object.assign({}, loggedInGoogleUser); } - catch ( /** @type {any} */error) { + catch (error) { console.log(`api-google-login.ts ERROR: ${error.message}`); return { success: false, diff --git a/dist/package-shared/types/index.d.ts b/dist/package-shared/types/index.d.ts index fe8bc96..a26113f 100644 --- a/dist/package-shared/types/index.d.ts +++ b/dist/package-shared/types/index.d.ts @@ -965,6 +965,7 @@ export type APIGoogleLoginFunctionParams = { }; debug?: boolean; loginOnly?: boolean; + apiUserId?: string | number; }; export type APIGoogleLoginFunction = (params: APIGoogleLoginFunctionParams) => Promise; /** @@ -981,6 +982,7 @@ export type HandleSocialDbFunctionParams = { debug?: boolean; loginOnly?: boolean; social_id?: string | number; + apiUserId?: string | number; }; export type HandleSocialDbFunctionReturn = { success: boolean; @@ -1808,7 +1810,7 @@ export type GrabUserResourceParams { - const grabedHostNames = grabHostNames({ - userId: apiUserID || process.env.DSQL_API_USER_ID, - }); - const { host, port, scheme, user_id } = grabedHostNames; + useLocal, + apiVersion, +}: GoogleAuthParams): Promise { const COOKIE_EXPIRY_DATE = grabCookieExpiryDate(); const finalEncryptionKey = @@ -90,72 +72,37 @@ export default async function googleAuth({ * Initialize HTTP response variable */ - let httpResponse: APILoginFunctionReturn = { + let httpResponse: APIResponseObject = { success: false, }; - if (forceLocal) { + const googleAuthParams: APIGoogleLoginFunctionParams = { + token, + additionalFields, + additionalData, + debug, + loginOnly, + database, + apiUserId: apiUserID || process.env.DSQL_API_USER_ID, + }; + + if (useLocal) { if (debug) { console.log(`Google login with Local Paradigm ...`); } - httpResponse = await apiGoogleLogin({ - token, - additionalFields, - additionalData, - debug, - loginOnly, - }); + httpResponse = await apiGoogleLogin(googleAuthParams); } else { - httpResponse = await new Promise((resolve, reject) => { - const reqPayload = JSON.stringify({ - token, + httpResponse = await queryDSQLAPI({ + path: grabUserDSQLAPIPath({ + paradigm: "auth", + action: "google-login", database, - additionalFields, - additionalData, - }); - - const httpsRequest = scheme.request( - { - method: "POST", - headers: { - "Content-Type": "application/json", - "Content-Length": Buffer.from(reqPayload).length, - Authorization: - key || - process.env.DSQL_FULL_ACCESS_API_KEY || - process.env.DSQL_API_KEY, - }, - port, - hostname: host, - path: `/api/user/${ - apiUserID || grabedHostNames.user_id - }/google-login`, - }, - - /** - * Callback Function - * - * @description https request callback - */ - (response) => { - var str = ""; - - response.on("data", function (chunk) { - str += chunk; - }); - - response.on("end", function () { - resolve(JSON.parse(str)); - }); - - response.on("error", (err) => { - reject(err); - }); - } - ); - httpsRequest.write(reqPayload); - httpsRequest.end(); + apiVersion, + }), + apiKey, + body: googleAuthParams, + method: "POST", }); } @@ -173,7 +120,7 @@ export default async function googleAuth({ const cookieNames = getAuthCookieNames({ database, - userId: user_id, + userId: apiUserID || process.env.DSQL_API_USER_ID, }); if (httpResponse.csrf) { diff --git a/package-shared/actions/users/validate-temp-email-code.ts b/package-shared/actions/users/validate-temp-email-code.ts new file mode 100644 index 0000000..f9c4c26 --- /dev/null +++ b/package-shared/actions/users/validate-temp-email-code.ts @@ -0,0 +1,52 @@ +import http from "http"; +import getAuthCookieNames from "../../functions/backend/cookies/get-auth-cookie-names"; +import parseCookies from "../../utils/backend/parseCookies"; +import decrypt from "../../functions/dsql/decrypt"; +import EJSON from "../../utils/ejson"; +import { SendOneTimeCodeEmailResponse } from "../../types"; + +type Param = { + request?: http.IncomingMessage & { [s: string]: any }; + cookieString?: string; + email?: string; + code?: string; +}; + +/** + * # Verify the temp email code sent to the user's email address + */ +export default async function validateTempEmailCode({ + request, + email, + cookieString, + code, +}: Param): Promise { + try { + const keyNames = getAuthCookieNames(); + const oneTimeCodeCookieName = keyNames.oneTimeCodeName; + + const cookies = parseCookies({ request, cookieString }); + const encryptedOneTimeCode = cookies[oneTimeCodeCookieName]; + + const encryptedPayload = decrypt({ + encryptedString: encryptedOneTimeCode, + }); + + const payload = EJSON.parse(encryptedPayload) as + | SendOneTimeCodeEmailResponse + | undefined; + + if (payload?.email && !email) { + return payload; + } + + if (payload?.email && payload.email === email) { + return payload; + } + + return null; + } catch (error: any) { + console.log("validateTempEmailCode error:", error.message); + return null; + } +} diff --git a/package-shared/api/user/index.ts b/package-shared/api/user/index.ts index 141c18c..5eb3285 100644 --- a/package-shared/api/user/index.ts +++ b/package-shared/api/user/index.ts @@ -4,12 +4,14 @@ import loginUser from "../../actions/users/login-user"; import logoutUser from "../../actions/users/logout-user"; import resetPassword from "../../actions/users/reset-password"; import sendEmailCode from "../../actions/users/send-email-code"; +import googleAuth from "../../actions/users/social/google-auth"; import updateUser from "../../actions/users/update-user"; import userAuth from "../../actions/users/user-auth"; import { AddUserParams, GetUserParams, + GoogleAuthParams, LoginUserParam, ResetPasswordParams, SendEmailCodeParams, @@ -53,6 +55,11 @@ export default function user(params?: Params) { return await resetPassword({ ..._, useLocal: true }); } : resetPassword, + googleLogin: params?.local + ? async (_: GoogleAuthParams) => { + return await googleAuth({ ..._, useLocal: true }); + } + : googleAuth, logout: logoutUser, auth: userAuth, }, diff --git a/package-shared/functions/api/social-login/handleSocialDb.ts b/package-shared/functions/api/social-login/handleSocialDb.ts index cb601cd..6a61ac2 100644 --- a/package-shared/functions/api/social-login/handleSocialDb.ts +++ b/package-shared/functions/api/social-login/handleSocialDb.ts @@ -11,6 +11,7 @@ import { HandleSocialDbFunctionParams, } from "../../../types"; import grabDirNames from "../../../utils/backend/names/grab-dir-names"; +import grabDbFullName from "../../../utils/grab-db-full-name"; /** * # Handle Social DB @@ -25,9 +26,13 @@ export default async function handleSocialDb({ additionalFields, debug, loginOnly, + apiUserId, }: HandleSocialDbFunctionParams): Promise { try { - const finalDbName = database ? database : "datasquirel"; + const finalDbName = grabDbFullName({ + dbName: database, + userId: apiUserId, + }); const existingSocialUserQUery = `SELECT * FROM users WHERE email = ? AND social_login='1' AND social_platform = ? `; const existingSocialUserValues = [email, social_platform]; diff --git a/package-shared/functions/api/users/social/api-google-login.ts b/package-shared/functions/api/users/social/api-google-login.ts index f93316f..579bc18 100644 --- a/package-shared/functions/api/users/social/api-google-login.ts +++ b/package-shared/functions/api/users/social/api-google-login.ts @@ -17,6 +17,7 @@ export default async function apiGoogleLogin({ additionalData, debug, loginOnly, + apiUserId, }: APIGoogleLoginFunctionParams): Promise { try { const gUser: GoogleOauth2User | undefined = await new Promise( @@ -78,6 +79,7 @@ export default async function apiGoogleLogin({ additionalFields, debug, loginOnly, + apiUserId, }); //////////////////////////////////////// @@ -85,7 +87,7 @@ export default async function apiGoogleLogin({ //////////////////////////////////////// return { ...loggedInGoogleUser }; - } catch (/** @type {any} */ error: any) { + } catch (error: any) { console.log(`api-google-login.ts ERROR: ${error.message}`); return { diff --git a/package-shared/types/index.ts b/package-shared/types/index.ts index 45af31f..fb2c582 100644 --- a/package-shared/types/index.ts +++ b/package-shared/types/index.ts @@ -1167,6 +1167,7 @@ export type APIGoogleLoginFunctionParams = { additionalData?: { [key: string]: string | number }; debug?: boolean; loginOnly?: boolean; + apiUserId?: string | number; }; export type APIGoogleLoginFunction = ( @@ -1187,6 +1188,7 @@ export type HandleSocialDbFunctionParams = { debug?: boolean; loginOnly?: boolean; social_id?: string | number; + apiUserId?: string | number; }; export type HandleSocialDbFunctionReturn = { @@ -2348,6 +2350,7 @@ export const UserAPIAuthActions = [ "delete", "send-email-code", "reset-password", + "google-login", ] as const; export type GrabUserAPIPathParams = { @@ -2451,3 +2454,23 @@ export type ApiUpdateUserParams< dbSchema?: DSQL_DatabaseSchemaType; dbUserId?: string | number; }; + +export type GoogleAuthParams = { + apiKey?: string; + token: string; + database?: string; + response?: ServerResponse; + encryptionKey?: string; + encryptionSalt?: string; + additionalFields?: string[]; + additionalData?: { [s: string]: string | number }; + apiUserID?: string | number; + debug?: boolean; + secureCookie?: boolean; + loginOnly?: boolean; + /** + * Login without calling external API + */ + useLocal?: boolean; + apiVersion?: string; +}; diff --git a/package.json b/package.json index 7534cd5..3a759e0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/datasquirel", - "version": "4.9.7", + "version": "4.9.8", "description": "Cloud-based SQL data management tool", "main": "dist/index.js", "bin": {