Add in IP tracking for SingleDeviceOnly checks.
This commit is contained in:
@@ -10,7 +10,7 @@ import {
|
|||||||
signInWithEmailAndPassword,
|
signInWithEmailAndPassword,
|
||||||
signOut
|
signOut
|
||||||
} from "firebase/auth";
|
} from "firebase/auth";
|
||||||
import { doc, getDoc, setDoc } from "firebase/firestore";
|
import { arrayUnion, doc, getDoc, setDoc, updateDoc } from "firebase/firestore";
|
||||||
import { getToken } from "firebase/messaging";
|
import { getToken } from "firebase/messaging";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
import LogRocket from "logrocket";
|
import LogRocket from "logrocket";
|
||||||
@@ -48,6 +48,7 @@ import {
|
|||||||
validatePasswordResetSuccess
|
validatePasswordResetSuccess
|
||||||
} from "./user.actions";
|
} from "./user.actions";
|
||||||
import UserActionTypes from "./user.types";
|
import UserActionTypes from "./user.types";
|
||||||
|
import cleanAxios from "../../utils/CleanAxios";
|
||||||
|
|
||||||
const fpPromise = FingerprintJS.load();
|
const fpPromise = FingerprintJS.load();
|
||||||
|
|
||||||
@@ -177,10 +178,24 @@ export function* setInstanceIdSaga({ payload: uid }) {
|
|||||||
// Get the visitor identifier when you need it.
|
// Get the visitor identifier when you need it.
|
||||||
const fp = yield fpPromise;
|
const fp = yield fpPromise;
|
||||||
const result = yield fp.get();
|
const result = yield fp.get();
|
||||||
yield setDoc(userInstanceRef, {
|
const res = yield cleanAxios.get("https://api.ipify.org/?format=json");
|
||||||
timestamp: new Date(),
|
const udoc = yield getDoc(userInstanceRef);
|
||||||
fingerprint: result.visitorId
|
|
||||||
});
|
if (!udoc.data()) {
|
||||||
|
yield setDoc(userInstanceRef, {
|
||||||
|
timestamp: new Date(),
|
||||||
|
fingerprint: result.visitorId,
|
||||||
|
//totalFingerprint: result,
|
||||||
|
ip: [res.data.ip]
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
yield updateDoc(userInstanceRef, {
|
||||||
|
timestamp: new Date(),
|
||||||
|
fingerprint: result.visitorId,
|
||||||
|
//totalFingerprint: result,
|
||||||
|
ip: arrayUnion(res.data.ip)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
yield put(setLocalFingerprint(result.visitorId));
|
yield put(setLocalFingerprint(result.visitorId));
|
||||||
yield delay(5 * 60 * 1000);
|
yield delay(5 * 60 * 1000);
|
||||||
@@ -311,17 +326,17 @@ export function* SetAuthLevelFromShopDetails({ payload }) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const user = yield select((state) => state.user.currentUser);
|
const user = yield select((state) => state.user.currentUser);
|
||||||
if (payload.features.singleDeviceOnly) {
|
// if (payload.features.singleDeviceOnly) {
|
||||||
if (
|
// if (
|
||||||
!(
|
// !(
|
||||||
user.email.includes("@imex.") ||
|
// user.email.includes("@imex.") ||
|
||||||
user.email.includes("@rome.") ||
|
// user.email.includes("@rome.") ||
|
||||||
user.email.includes("@rometech.") ||
|
// user.email.includes("@rometech.") ||
|
||||||
user.email.includes("@promanager.")
|
// user.email.includes("@promanager.")
|
||||||
)
|
// )
|
||||||
)
|
// )
|
||||||
yield put(setInstanceId(user.uid));
|
yield put(setInstanceId(user.uid));
|
||||||
}
|
//}
|
||||||
|
|
||||||
//For Rome, check to make sure it's not a PM shop.
|
//For Rome, check to make sure it's not a PM shop.
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user