dauth-context-react 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"dauth-context-react.esm.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.types.ts","../src/reducer/dauth.reducer.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/api/utils/routes.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["import {\n IActionStatus,\n IDauthDomainState,\n IDauthState,\n IDauthUser,\n} from './interfaces';\n\nconst initialDauthState: IDauthState = {\n user: {\n language: (typeof window !== 'undefined' ? window.document.documentElement.getAttribute('lang') : null) || 'es',\n } as IDauthUser,\n domain: {} as IDauthDomainState,\n isLoading: true,\n isAuthenticated: false,\n loginWithRedirect: () => {},\n logout: () => {},\n getAccessToken: () => Promise.resolve(''),\n updateUser: () => Promise.resolve(false),\n updateUserWithRedirect: () => {},\n // Send email verification\n sendEmailVerificationStatus: {\n status: {\n type: 'info',\n message: 'Sending email verification...',\n } as IActionStatus,\n isLoading: false,\n },\n sendEmailVerification: () => Promise.resolve(false),\n};\n\nexport default initialDauthState;\n","export const LOGIN = 'LOGIN';\nexport const SET_IS_LOADING = 'SET_IS_LOADING';\nexport const UPDATE_USER = 'UPDATE_USER';\nexport const SET_SEND_EMAIL_VERIFICATION_IS_LOADING =\n 'SET_SEND_EMAIL_VERIFICATION_IS_LOADING';\nexport const SET_SEND_EMAIL_VERIFICATION_STATUS =\n 'SET_SEND_EMAIL_VERIFICATION_STATUS';\n","import { IDauthState } from '../interfaces';\nimport * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: IDauthState, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN: {\n const login: IDauthState = {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n return login;\n }\n\n case DauthTypes.SET_IS_LOADING: {\n const isLoading: IDauthState = {\n ...state,\n isLoading: payload.isLoading,\n };\n return isLoading;\n }\n\n case DauthTypes.UPDATE_USER: {\n const updateUser: IDauthState = {\n ...state,\n user: {\n ...state.user,\n ...payload,\n },\n };\n return updateUser;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS: {\n const setSendEmailVerificationStatus: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n status: {\n type: payload.type,\n message: payload.message,\n },\n },\n };\n return setSendEmailVerificationStatus;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING: {\n const setSendEmailVerificationIsLoading: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n isLoading: payload,\n },\n };\n return setSendEmailVerificationIsLoading;\n }\n\n default:\n return state;\n }\n}\n","export const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nfunction checkIsLocalhost(): boolean {\n if (typeof window === 'undefined') return false;\n const hostname = window.location.hostname;\n return Boolean(\n hostname === 'localhost' ||\n hostname === '[::1]' ||\n hostname.match(\n /(192)\\.(168)\\.(1)\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm\n ) ||\n hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n );\n}\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const isLocalhost = checkIsLocalhost();\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\n}\n\nexport function getClientBasePath({ domainName }: { domainName: string }) {\n const isLocalhost = checkIsLocalhost();\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${domainName}.${serverDomain}`;\n const clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;\n return clientBasePath;\n}\n","import { getServerBasePath } from './utils/config';\nimport { IDauthUser } from '../interfaces';\nimport {\n IgetUserAPIResponse,\n IrefreshAccessTokenAPIResponse,\n IsendEmailVerificationAPIResponse,\n IupdateUserAPIResponse,\n IverifyTokenAPIResponse,\n} from './interfaces/dauth.api.responses';\n\nexport const getUserAPI = async (\n domainName: string,\n token: string\n): Promise<IgetUserAPIResponse> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/tenant/${domainName}/user`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const updateUserAPI = async (\n domainName: string,\n user: Partial<IDauthUser>,\n token: string\n): Promise<IupdateUserAPIResponse> => {\n const params = {\n method: 'PATCH',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(user),\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/tenant/${domainName}/user`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const sendEmailVerificationAPI = async (\n domainName: string,\n token: string\n): Promise<IsendEmailVerificationAPIResponse> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({\n domainName,\n })}/tenant/${domainName}/resend-email-verification`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const refreshAccessTokenAPI = async (\n domainName: string,\n token: string\n): Promise<IrefreshAccessTokenAPIResponse> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({\n domainName,\n })}/tenant/${domainName}/refresh-access-token`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const verifyTokenAPI = async ({\n domainName,\n tsk,\n token,\n}: {\n domainName: string;\n tsk: string;\n token: string;\n}): Promise<IverifyTokenAPIResponse> => {\n const params = {\n method: 'POST',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ tsk }),\n };\n const response = await fetch(\n `${getServerBasePath({\n domainName,\n })}/tenant/${domainName}/verify-token`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n","export const TOKEN_LS = 'dauth_state';\n","export const routes = {\n signin: 'signin',\n updateUser: 'update-user',\n};\n","import {\n getUserAPI,\n refreshAccessTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { getClientBasePath } from '../api/utils/config';\nimport { TOKEN_LS } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../interfaces';\nimport { routes } from '../api/utils/routes';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: React.Dispatch<any>;\n token: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n token,\n domainName,\n}: TSetDauthStateAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getUserAPI(domainName, token);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n window.history.replaceState(\n {},\n document.title,\n getUserFetch.data.domain.loginRedirect\n );\n return localStorage.setItem(TOKEN_LS, token);\n } else {\n return resetUser(dispatch);\n }\n } catch (error) {\n console.error(error);\n return resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\ntype TSetAutoLoginAction = {\n dispatch: React.Dispatch<any>;\n token_ls: string;\n domainName: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n token_ls,\n domainName,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n const newToken = refreshAccessTokenFetch.data.accessToken || token_ls;\n const getUserFetch = await getUserAPI(domainName, newToken);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n localStorage.setItem(\n TOKEN_LS,\n refreshAccessTokenFetch.data.accessToken\n );\n return;\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${domainName}/${routes.signin}`\n );\n return resetUser(dispatch);\n }\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${domainName}/${routes.signin}`\n );\n return resetUser(dispatch);\n }\n } catch (error) {\n console.error(error);\n return resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\nexport function setLogoutAction({\n dispatch,\n}: {\n dispatch: React.Dispatch<any>;\n}) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n },\n domain: {},\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(TOKEN_LS);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n\ntype TSetUpdateAction = {\n dispatch: React.Dispatch<any>;\n domainName: string;\n user: Partial<IDauthUser>;\n token: string | null;\n};\nexport async function setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token,\n}: TSetUpdateAction) {\n if (user.language) {\n window.document.documentElement.setAttribute('lang', user.language);\n }\n if (!token) {\n dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: user,\n });\n return false;\n }\n try {\n const getUserFetch = await updateUserAPI(domainName, user, token);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: getUserFetch.data.user,\n });\n return true;\n } else {\n console.error('Update user error', getUserFetch.data.message);\n return false;\n }\n } catch (error) {\n console.error('Update user error', error);\n return false;\n }\n}\n\ntype TSetSendEmailVerificationAction = {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n};\nexport async function sendEmailVerificationAction({\n dispatch,\n domainName,\n token,\n}: TSetSendEmailVerificationAction) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: true,\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'info', message: 'Sending email verification...' },\n });\n try {\n const sendEmailFetch = await sendEmailVerificationAPI(domainName, token);\n if (sendEmailFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'success', message: sendEmailFetch.data.message },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return true;\n } else {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'error', message: sendEmailFetch.data.message },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return false;\n }\n } catch (error) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: {\n type: 'error',\n message: 'Send email verification fetch error',\n },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return false;\n }\n}\n\nexport async function checkTokenAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n}) {\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n if (refreshAccessTokenFetch.data.accessToken) {\n localStorage.setItem(TOKEN_LS, refreshAccessTokenFetch.data.accessToken);\n }\n return;\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${domainName}/${routes.signin}`\n );\n return resetUser(dispatch);\n }\n } catch (error) {\n resetUser(dispatch);\n throw error;\n }\n}\n\nexport async function getAccessTokenAction({\n dispatch,\n domainName,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n}) {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return refreshAccessTokenFetch.data.accessToken ?? token_ls;\n } else {\n resetUser(dispatch);\n return 'token-not-found';\n }\n } catch (error) {\n resetUser(dispatch);\n throw error;\n }\n}\n\n///////////////////////////////////////////\n//////////////////////////////////////////\nexport const resetUser = (dispatch: React.Dispatch<any>) => {\n localStorage.removeItem(TOKEN_LS);\n return dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n};\n","import React, {\n useReducer,\n useMemo,\n useEffect,\n useCallback,\n createContext,\n useContext,\n} from 'react';\nimport initialDauthState from './initialDauthState';\nimport userReducer from './reducer/dauth.reducer';\nimport * as action from './reducer/dauth.actions';\nimport { getClientBasePath } from './api/utils/config';\nimport { TOKEN_LS } from './constants';\nimport { routes } from './api/utils/routes';\nimport { verifyTokenAPI } from './api/dauth.api';\nimport { IDauthUser } from './interfaces';\nimport { SET_IS_LOADING } from './reducer/dauth.types';\n\ninterface DauthProviderProps {\n domainName: string;\n tsk: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, tsk, children } = props;\n const [dauthState, dispatch] = useReducer(userReducer, initialDauthState);\n\n const isValidTsk = useCallback(\n async (token: string) => {\n try {\n const verifyToken = await verifyTokenAPI({\n domainName,\n token,\n tsk,\n });\n if (verifyToken.response.status !== 200) {\n return false;\n }\n return true;\n } catch (error) {\n return false;\n }\n },\n [domainName, tsk]\n );\n\n // Check token periodically\n useEffect(() => {\n if (!dauthState.isAuthenticated) return;\n let interval = setInterval(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n const isValid = await isValidTsk(token_ls);\n if (isValid) {\n return action.checkTokenAction({\n dispatch,\n domainName,\n token: token_ls,\n });\n } else {\n action.setLogoutAction({ dispatch });\n throw new Error('Ask value in DauthProvider is not valid');\n }\n }, 1000 * 60 * 5);\n return () => clearInterval(interval);\n }, [dauthState.isAuthenticated, isValidTsk]);\n\n // Catch login redirect\n useEffect(() => {\n (async () => {\n const queryString = window.location.search;\n if (!queryString) return;\n const urlParams = new URLSearchParams(queryString);\n const token_url = urlParams.get(TOKEN_LS);\n if (token_url && !dauthState.isAuthenticated) {\n const isValid = await isValidTsk(token_url);\n if (isValid) {\n return action.setDauthStateAction({\n dispatch,\n token: token_url,\n domainName,\n });\n } else {\n action.setLogoutAction({ dispatch });\n throw new Error('Ask value in DauthProvider is not valid');\n }\n }\n })();\n }, []);\n\n // Auto Login\n useEffect(() => {\n (async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (token_ls && !dauthState.isAuthenticated) {\n const isValid = await isValidTsk(token_ls);\n if (isValid) {\n return action.setAutoLoginAction({\n dispatch,\n token_ls,\n domainName,\n });\n } else {\n action.setLogoutAction({ dispatch });\n throw new Error('Ask value in DauthProvider is not valid');\n }\n } else {\n return dispatch({\n type: SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n })();\n }, []);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath({ domainName })}/${domainName}/${routes.signin}`\n );\n }, [domainName]);\n\n const logout = useCallback(() => {\n return action.setLogoutAction({ dispatch });\n }, []);\n\n const getAccessToken = useCallback(async () => {\n const token = await action.getAccessTokenAction({ dispatch, domainName });\n return token as string;\n }, [domainName]);\n\n const updateUser = useCallback(\n async ({\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n const user = {\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n } as Partial<IDauthUser>;\n return (await action.setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token: token_ls,\n })) as boolean;\n },\n [domainName]\n );\n\n const updateUserWithRedirect = useCallback(() => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n return window.location.replace(\n `${getClientBasePath({ domainName })}/${domainName}/${routes.updateUser}/${token_ls}`\n );\n }, [domainName]);\n\n const sendEmailVerification = useCallback(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return false;\n return (await action.sendEmailVerificationAction({\n dispatch,\n domainName,\n token: token_ls,\n })) as boolean;\n }, [domainName]);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n }),\n [\n dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n ]\n );\n\n return (\n <DauthContext.Provider value={memoProvider}>\n {children}\n </DauthContext.Provider>\n );\n};\n\nconst DauthContext = createContext(initialDauthState);\n\nexport const useDauth = () => {\n const context = useContext(DauthContext);\n if (!context) {\n throw new Error('useDauth must be used inside DauthProvider');\n }\n return context;\n};\n"],"names":["initialDauthState","user","language","window","document","documentElement","getAttribute","domain","isLoading","isAuthenticated","loginWithRedirect","logout","getAccessToken","Promise","resolve","updateUser","updateUserWithRedirect","sendEmailVerificationStatus","status","type","message","sendEmailVerification","LOGIN","SET_IS_LOADING","UPDATE_USER","SET_SEND_EMAIL_VERIFICATION_IS_LOADING","SET_SEND_EMAIL_VERIFICATION_STATUS","userReducer","state","action","payload","DauthTypes","login","_extends","setSendEmailVerificationStatus","setSendEmailVerificationIsLoading","apiVersion","serverDomain","checkIsLocalhost","hostname","location","Boolean","match","getServerBasePath","_ref","domainName","isLocalhost","serverPort","serverLocalUrl","protocol","serverProdUrl","serverBasePath","getClientBasePath","_ref2","clientPort","clientLocalUrl","clientProdUrl","clientBasePath","getUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","data","wrap","_callee$","_context","prev","next","method","headers","Authorization","fetch","sent","json","abrupt","stop","_x","_x2","apply","arguments","updateUserAPI","_callee2","_callee2$","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_callee3$","_context3","_x6","_x7","refreshAccessTokenAPI","_ref4","_callee4","_callee4$","_context4","_x8","_x9","verifyTokenAPI","_ref6","_callee5","_ref5","tsk","_callee5$","_context5","_x10","TOKEN_LS","routes","signin","setDauthStateAction","_setDauthStateAction","dispatch","getUserFetch","history","replaceState","title","loginRedirect","localStorage","setItem","resetUser","t0","console","error","finish","setAutoLoginAction","_setAutoLoginAction","token_ls","refreshAccessTokenFetch","newToken","accessToken","replace","setLogoutAction","removeItem","setUpdateUserAction","_setUpdateUserAction","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","sendEmailFetch","checkTokenAction","_checkTokenAction","getAccessTokenAction","_getAccessTokenAction","_callee6","_ref7","_refreshAccessTokenFe","_callee6$","_context6","getItem","DauthProvider","props","children","_useReducer","useReducer","dauthState","isValidTsk","useCallback","verifyToken","useEffect","interval","setInterval","isValid","Error","clearInterval","queryString","urlParams","token_url","search","URLSearchParams","get","name","lastname","nickname","telPrefix","telSuffix","avatar","_callee7","_callee7$","_context7","memoProvider","useMemo","React","DauthContext","Provider","value","createContext","useDauth","context","useContext"],"mappings":"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"}
1
+ {"version":3,"file":"dauth-context-react.esm.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.types.ts","../src/reducer/dauth.reducer.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/api/utils/routes.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["import {\n IActionStatus,\n IDauthDomainState,\n IDauthState,\n IDauthUser,\n} from './interfaces';\n\nconst initialDauthState: IDauthState = {\n user: {\n language:\n (typeof window !== 'undefined'\n ? window.document.documentElement.getAttribute('lang')\n : null) || 'es',\n } as IDauthUser,\n domain: {} as IDauthDomainState,\n isLoading: true,\n isAuthenticated: false,\n loginWithRedirect: () => {},\n logout: () => {},\n getAccessToken: () => Promise.resolve(''),\n updateUser: () => Promise.resolve(false),\n updateUserWithRedirect: () => {},\n // Send email verification\n sendEmailVerificationStatus: {\n status: {\n type: 'info',\n message: 'Sending email verification...',\n } as IActionStatus,\n isLoading: false,\n },\n sendEmailVerification: () => Promise.resolve(false),\n};\n\nexport default initialDauthState;\n","export const LOGIN = 'LOGIN';\nexport const SET_IS_LOADING = 'SET_IS_LOADING';\nexport const UPDATE_USER = 'UPDATE_USER';\nexport const SET_SEND_EMAIL_VERIFICATION_IS_LOADING =\n 'SET_SEND_EMAIL_VERIFICATION_IS_LOADING';\nexport const SET_SEND_EMAIL_VERIFICATION_STATUS =\n 'SET_SEND_EMAIL_VERIFICATION_STATUS';\n","import { IDauthState } from '../interfaces';\nimport * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: IDauthState, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN: {\n const login: IDauthState = {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n return login;\n }\n\n case DauthTypes.SET_IS_LOADING: {\n const isLoading: IDauthState = {\n ...state,\n isLoading: payload.isLoading,\n };\n return isLoading;\n }\n\n case DauthTypes.UPDATE_USER: {\n const updateUser: IDauthState = {\n ...state,\n user: {\n ...state.user,\n ...payload,\n },\n };\n return updateUser;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS: {\n const setSendEmailVerificationStatus: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n status: {\n type: payload.type,\n message: payload.message,\n },\n },\n };\n return setSendEmailVerificationStatus;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING: {\n const setSendEmailVerificationIsLoading: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n isLoading: payload,\n },\n };\n return setSendEmailVerificationIsLoading;\n }\n\n default:\n return state;\n }\n}\n","export const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nfunction checkIsLocalhost(): boolean {\n if (typeof window === 'undefined') return false;\n const hostname = window.location.hostname;\n return Boolean(\n hostname === 'localhost' ||\n hostname === '[::1]' ||\n hostname.match(\n /(192)\\.(168)\\.(1)\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm\n ) ||\n hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n );\n}\n\nexport function getServerBasePath() {\n const isLocalhost = checkIsLocalhost();\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${serverDomain}/api/${apiVersion}`;\n return isLocalhost ? serverLocalUrl : serverProdUrl;\n}\n\nexport function getClientBasePath() {\n const isLocalhost = checkIsLocalhost();\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${serverDomain}`;\n return isLocalhost ? clientLocalUrl : clientProdUrl;\n}\n","import { getServerBasePath } from './utils/config';\nimport { IDauthUser } from '../interfaces';\nimport {\n IgetUserAPIResponse,\n IrefreshAccessTokenAPIResponse,\n IsendEmailVerificationAPIResponse,\n IupdateUserAPIResponse,\n IverifyTokenAPIResponse,\n} from './interfaces/dauth.api.responses';\n\nexport const getUserAPI = async (\n domainName: string,\n token: string\n): Promise<IgetUserAPIResponse> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/user`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const updateUserAPI = async (\n domainName: string,\n user: Partial<IDauthUser>,\n token: string\n): Promise<IupdateUserAPIResponse> => {\n const params = {\n method: 'PATCH',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(user),\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/user`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const sendEmailVerificationAPI = async (\n domainName: string,\n token: string\n): Promise<IsendEmailVerificationAPIResponse> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/resend-email-verification`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const refreshAccessTokenAPI = async (\n domainName: string,\n token: string\n): Promise<IrefreshAccessTokenAPIResponse> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/refresh-access-token`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const verifyTokenAPI = async ({\n domainName,\n tsk,\n token,\n}: {\n domainName: string;\n tsk: string;\n token: string;\n}): Promise<IverifyTokenAPIResponse> => {\n const params = {\n method: 'POST',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ tsk }),\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/verify-token`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n","export const TOKEN_LS = 'dauth_state';\n","export const routes = {\n signin: 'signin',\n updateUser: 'update-user',\n};\n","import {\n getUserAPI,\n refreshAccessTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { getClientBasePath } from '../api/utils/config';\nimport { TOKEN_LS } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../interfaces';\nimport { routes } from '../api/utils/routes';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: React.Dispatch<any>;\n token: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n token,\n domainName,\n}: TSetDauthStateAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getUserAPI(domainName, token);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n window.history.replaceState({}, document.title, window.location.pathname);\n return localStorage.setItem(TOKEN_LS, token);\n } else {\n return resetUser(dispatch);\n }\n } catch (error) {\n console.error(error);\n return resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\ntype TSetAutoLoginAction = {\n dispatch: React.Dispatch<any>;\n token_ls: string;\n domainName: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n token_ls,\n domainName,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n const newToken = refreshAccessTokenFetch.data.accessToken || token_ls;\n const getUserFetch = await getUserAPI(domainName, newToken);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n localStorage.setItem(\n TOKEN_LS,\n refreshAccessTokenFetch.data.accessToken\n );\n return;\n } else {\n window.location.replace(\n `${getClientBasePath()}/${domainName}/${routes.signin}`\n );\n return resetUser(dispatch);\n }\n } else {\n window.location.replace(\n `${getClientBasePath()}/${domainName}/${routes.signin}`\n );\n return resetUser(dispatch);\n }\n } catch (error) {\n console.error(error);\n return resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\nexport function setLogoutAction({\n dispatch,\n}: {\n dispatch: React.Dispatch<any>;\n}) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n },\n domain: {},\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(TOKEN_LS);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n\ntype TSetUpdateAction = {\n dispatch: React.Dispatch<any>;\n domainName: string;\n user: Partial<IDauthUser>;\n token: string | null;\n};\nexport async function setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token,\n}: TSetUpdateAction) {\n if (user.language) {\n window.document.documentElement.setAttribute('lang', user.language);\n }\n if (!token) {\n dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: user,\n });\n return false;\n }\n try {\n const getUserFetch = await updateUserAPI(domainName, user, token);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: getUserFetch.data.user,\n });\n return true;\n } else {\n console.error('Update user error', getUserFetch.data.message);\n return false;\n }\n } catch (error) {\n console.error('Update user error', error);\n return false;\n }\n}\n\ntype TSetSendEmailVerificationAction = {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n};\nexport async function sendEmailVerificationAction({\n dispatch,\n domainName,\n token,\n}: TSetSendEmailVerificationAction) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: true,\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'info', message: 'Sending email verification...' },\n });\n try {\n const sendEmailFetch = await sendEmailVerificationAPI(domainName, token);\n if (sendEmailFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'success', message: sendEmailFetch.data.message },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return true;\n } else {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'error', message: sendEmailFetch.data.message },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return false;\n }\n } catch (error) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: {\n type: 'error',\n message: 'Send email verification fetch error',\n },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return false;\n }\n}\n\nexport async function checkTokenAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n}) {\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n if (refreshAccessTokenFetch.data.accessToken) {\n localStorage.setItem(\n TOKEN_LS,\n refreshAccessTokenFetch.data.accessToken\n );\n }\n return;\n } else {\n window.location.replace(\n `${getClientBasePath()}/${domainName}/${routes.signin}`\n );\n return resetUser(dispatch);\n }\n } catch (error) {\n resetUser(dispatch);\n throw error;\n }\n}\n\nexport async function getAccessTokenAction({\n dispatch,\n domainName,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n}) {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return refreshAccessTokenFetch.data.accessToken ?? token_ls;\n } else {\n resetUser(dispatch);\n return 'token-not-found';\n }\n } catch (error) {\n resetUser(dispatch);\n throw error;\n }\n}\n\n///////////////////////////////////////////\n//////////////////////////////////////////\nexport const resetUser = (dispatch: React.Dispatch<any>) => {\n localStorage.removeItem(TOKEN_LS);\n return dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n};\n","import React, {\n useReducer,\n useMemo,\n useEffect,\n useCallback,\n createContext,\n useContext,\n} from 'react';\nimport initialDauthState from './initialDauthState';\nimport userReducer from './reducer/dauth.reducer';\nimport * as action from './reducer/dauth.actions';\nimport { getClientBasePath } from './api/utils/config';\nimport { TOKEN_LS } from './constants';\nimport { routes } from './api/utils/routes';\nimport { verifyTokenAPI } from './api/dauth.api';\nimport { IDauthUser } from './interfaces';\nimport { SET_IS_LOADING } from './reducer/dauth.types';\n\ninterface DauthProviderProps {\n domainName: string;\n tsk: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, tsk, children } = props;\n const [dauthState, dispatch] = useReducer(userReducer, initialDauthState);\n\n const isValidTsk = useCallback(\n async (token: string) => {\n try {\n const verifyToken = await verifyTokenAPI({\n domainName,\n token,\n tsk,\n });\n if (verifyToken.response.status !== 200) {\n return false;\n }\n return true;\n } catch (error) {\n return false;\n }\n },\n [domainName, tsk]\n );\n\n // Check token periodically\n useEffect(() => {\n if (!dauthState.isAuthenticated) return;\n let interval = setInterval(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n const isValid = await isValidTsk(token_ls);\n if (isValid) {\n return action.checkTokenAction({\n dispatch,\n domainName,\n token: token_ls,\n });\n } else {\n action.setLogoutAction({ dispatch });\n throw new Error('Ask value in DauthProvider is not valid');\n }\n }, 1000 * 60 * 5);\n return () => clearInterval(interval);\n }, [dauthState.isAuthenticated, isValidTsk]);\n\n // Catch login redirect\n useEffect(() => {\n (async () => {\n const queryString = window.location.search;\n if (!queryString) return;\n const urlParams = new URLSearchParams(queryString);\n const token_url = urlParams.get(TOKEN_LS);\n if (token_url && !dauthState.isAuthenticated) {\n const isValid = await isValidTsk(token_url);\n if (isValid) {\n return action.setDauthStateAction({\n dispatch,\n token: token_url,\n domainName,\n });\n } else {\n action.setLogoutAction({ dispatch });\n throw new Error('Ask value in DauthProvider is not valid');\n }\n }\n })();\n }, []);\n\n // Auto Login\n useEffect(() => {\n (async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (token_ls && !dauthState.isAuthenticated) {\n const isValid = await isValidTsk(token_ls);\n if (isValid) {\n return action.setAutoLoginAction({\n dispatch,\n token_ls,\n domainName,\n });\n } else {\n action.setLogoutAction({ dispatch });\n throw new Error('Ask value in DauthProvider is not valid');\n }\n } else {\n return dispatch({\n type: SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n })();\n }, []);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath()}/${domainName}/${routes.signin}`\n );\n }, [domainName]);\n\n const logout = useCallback(() => {\n return action.setLogoutAction({ dispatch });\n }, []);\n\n const getAccessToken = useCallback(async () => {\n const token = await action.getAccessTokenAction({ dispatch, domainName });\n return token as string;\n }, [domainName]);\n\n const updateUser = useCallback(\n async ({\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n const user = {\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n } as Partial<IDauthUser>;\n return (await action.setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token: token_ls,\n })) as boolean;\n },\n [domainName]\n );\n\n const updateUserWithRedirect = useCallback(() => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n return window.location.replace(\n `${getClientBasePath()}/${domainName}/${routes.updateUser}/${token_ls}`\n );\n }, [domainName]);\n\n const sendEmailVerification = useCallback(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return false;\n return (await action.sendEmailVerificationAction({\n dispatch,\n domainName,\n token: token_ls,\n })) as boolean;\n }, [domainName]);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n }),\n [\n dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n ]\n );\n\n return (\n <DauthContext.Provider value={memoProvider}>\n {children}\n </DauthContext.Provider>\n );\n};\n\nconst DauthContext = createContext(initialDauthState);\n\nexport const useDauth = () => {\n const context = useContext(DauthContext);\n if (!context) {\n throw new Error('useDauth must be used inside DauthProvider');\n }\n return context;\n};\n"],"names":["initialDauthState","user","language","window","document","documentElement","getAttribute","domain","isLoading","isAuthenticated","loginWithRedirect","logout","getAccessToken","Promise","resolve","updateUser","updateUserWithRedirect","sendEmailVerificationStatus","status","type","message","sendEmailVerification","LOGIN","SET_IS_LOADING","UPDATE_USER","SET_SEND_EMAIL_VERIFICATION_IS_LOADING","SET_SEND_EMAIL_VERIFICATION_STATUS","userReducer","state","action","payload","DauthTypes","login","_extends","setSendEmailVerificationStatus","setSendEmailVerificationIsLoading","apiVersion","serverDomain","checkIsLocalhost","hostname","location","Boolean","match","getServerBasePath","isLocalhost","serverPort","serverLocalUrl","protocol","serverProdUrl","getClientBasePath","clientPort","clientLocalUrl","clientProdUrl","getUserAPI","_ref","_asyncToGenerator","_regenerator","m","_callee","domainName","token","params","response","data","w","_context","n","method","headers","Authorization","fetch","v","json","a","_x","_x2","apply","arguments","updateUserAPI","_ref2","_callee2","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_context3","_x6","_x7","refreshAccessTokenAPI","_ref4","_callee4","_context4","_x8","_x9","verifyTokenAPI","_ref6","_callee5","_ref5","tsk","_context5","_x0","TOKEN_LS","routes","signin","setDauthStateAction","_setDauthStateAction","dispatch","getUserFetch","_t","p","history","replaceState","title","pathname","localStorage","setItem","resetUser","console","error","f","setAutoLoginAction","_setAutoLoginAction","token_ls","refreshAccessTokenFetch","newToken","_t2","accessToken","replace","setLogoutAction","removeItem","setUpdateUserAction","_setUpdateUserAction","_t3","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","sendEmailFetch","checkTokenAction","_checkTokenAction","_t5","getAccessTokenAction","_getAccessTokenAction","_callee6","_ref7","_refreshAccessTokenFe","_t6","_context6","getItem","DauthProvider","props","children","_useReducer","useReducer","dauthState","isValidTsk","useCallback","verifyToken","useEffect","interval","setInterval","isValid","Error","clearInterval","queryString","urlParams","token_url","search","URLSearchParams","get","name","lastname","nickname","telPrefix","telSuffix","avatar","_callee7","_context7","memoProvider","useMemo","React","DauthContext","Provider","value","createContext","useDauth","context","useContext"],"mappings":"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"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.1",
2
+ "version": "1.0.3",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -20,7 +20,7 @@ export const getUserAPI = async (
20
20
  },
21
21
  };
22
22
  const response = await fetch(
23
- `${getServerBasePath({ domainName })}/tenant/${domainName}/user`,
23
+ `${getServerBasePath()}/app/${domainName}/user`,
24
24
  params
25
25
  );
26
26
  const data = await response.json();
@@ -41,7 +41,7 @@ export const updateUserAPI = async (
41
41
  body: JSON.stringify(user),
42
42
  };
43
43
  const response = await fetch(
44
- `${getServerBasePath({ domainName })}/tenant/${domainName}/user`,
44
+ `${getServerBasePath()}/app/${domainName}/user`,
45
45
  params
46
46
  );
47
47
  const data = await response.json();
@@ -60,9 +60,7 @@ export const sendEmailVerificationAPI = async (
60
60
  },
61
61
  };
62
62
  const response = await fetch(
63
- `${getServerBasePath({
64
- domainName,
65
- })}/tenant/${domainName}/resend-email-verification`,
63
+ `${getServerBasePath()}/app/${domainName}/resend-email-verification`,
66
64
  params
67
65
  );
68
66
  const data = await response.json();
@@ -81,9 +79,7 @@ export const refreshAccessTokenAPI = async (
81
79
  },
82
80
  };
83
81
  const response = await fetch(
84
- `${getServerBasePath({
85
- domainName,
86
- })}/tenant/${domainName}/refresh-access-token`,
82
+ `${getServerBasePath()}/app/${domainName}/refresh-access-token`,
87
83
  params
88
84
  );
89
85
  const data = await response.json();
@@ -108,9 +104,7 @@ export const verifyTokenAPI = async ({
108
104
  body: JSON.stringify({ tsk }),
109
105
  };
110
106
  const response = await fetch(
111
- `${getServerBasePath({
112
- domainName,
113
- })}/tenant/${domainName}/verify-token`,
107
+ `${getServerBasePath()}/app/${domainName}/verify-token`,
114
108
  params
115
109
  );
116
110
  const data = await response.json();
@@ -10,26 +10,22 @@ function checkIsLocalhost(): boolean {
10
10
  hostname.match(
11
11
  /(192)\.(168)\.(1)\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm
12
12
  ) ||
13
- hostname.match(
14
- /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/
15
- )
13
+ hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)
16
14
  );
17
15
  }
18
16
 
19
- export function getServerBasePath({ domainName }: { domainName: string }) {
17
+ export function getServerBasePath() {
20
18
  const isLocalhost = checkIsLocalhost();
21
19
  const serverPort = 4012;
22
20
  const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;
23
- const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;
24
- const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;
25
- return serverBasePath;
21
+ const serverProdUrl = `https://${serverDomain}/api/${apiVersion}`;
22
+ return isLocalhost ? serverLocalUrl : serverProdUrl;
26
23
  }
27
24
 
28
- export function getClientBasePath({ domainName }: { domainName: string }) {
25
+ export function getClientBasePath() {
29
26
  const isLocalhost = checkIsLocalhost();
30
27
  const clientPort = 5185;
31
28
  const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;
32
- const clientProdUrl = `https://${domainName}.${serverDomain}`;
33
- const clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;
34
- return clientBasePath;
29
+ const clientProdUrl = `https://${serverDomain}`;
30
+ return isLocalhost ? clientLocalUrl : clientProdUrl;
35
31
  }
package/src/index.tsx CHANGED
@@ -118,7 +118,7 @@ export const DauthProvider: React.FC<DauthProviderProps> = (
118
118
 
119
119
  const loginWithRedirect = useCallback(() => {
120
120
  return window.location.replace(
121
- `${getClientBasePath({ domainName })}/${domainName}/${routes.signin}`
121
+ `${getClientBasePath()}/${domainName}/${routes.signin}`
122
122
  );
123
123
  }, [domainName]);
124
124
 
@@ -165,7 +165,7 @@ export const DauthProvider: React.FC<DauthProviderProps> = (
165
165
  const token_ls = localStorage.getItem(TOKEN_LS);
166
166
  if (!token_ls) return;
167
167
  return window.location.replace(
168
- `${getClientBasePath({ domainName })}/${domainName}/${routes.updateUser}/${token_ls}`
168
+ `${getClientBasePath()}/${domainName}/${routes.updateUser}/${token_ls}`
169
169
  );
170
170
  }, [domainName]);
171
171
 
@@ -7,7 +7,10 @@ import {
7
7
 
8
8
  const initialDauthState: IDauthState = {
9
9
  user: {
10
- language: (typeof window !== 'undefined' ? window.document.documentElement.getAttribute('lang') : null) || 'es',
10
+ language:
11
+ (typeof window !== 'undefined'
12
+ ? window.document.documentElement.getAttribute('lang')
13
+ : null) || 'es',
11
14
  } as IDauthUser,
12
15
  domain: {} as IDauthDomainState,
13
16
  isLoading: true,
@@ -32,11 +32,7 @@ export async function setDauthStateAction({
32
32
  isAuthenticated: true,
33
33
  },
34
34
  });
35
- window.history.replaceState(
36
- {},
37
- document.title,
38
- getUserFetch.data.domain.loginRedirect
39
- );
35
+ window.history.replaceState({}, document.title, window.location.pathname);
40
36
  return localStorage.setItem(TOKEN_LS, token);
41
37
  } else {
42
38
  return resetUser(dispatch);
@@ -87,13 +83,13 @@ export async function setAutoLoginAction({
87
83
  return;
88
84
  } else {
89
85
  window.location.replace(
90
- `${getClientBasePath({ domainName })}/${domainName}/${routes.signin}`
86
+ `${getClientBasePath()}/${domainName}/${routes.signin}`
91
87
  );
92
88
  return resetUser(dispatch);
93
89
  }
94
90
  } else {
95
91
  window.location.replace(
96
- `${getClientBasePath({ domainName })}/${domainName}/${routes.signin}`
92
+ `${getClientBasePath()}/${domainName}/${routes.signin}`
97
93
  );
98
94
  return resetUser(dispatch);
99
95
  }
@@ -244,12 +240,15 @@ export async function checkTokenAction({
244
240
  );
245
241
  if (refreshAccessTokenFetch.response.status === 200) {
246
242
  if (refreshAccessTokenFetch.data.accessToken) {
247
- localStorage.setItem(TOKEN_LS, refreshAccessTokenFetch.data.accessToken);
243
+ localStorage.setItem(
244
+ TOKEN_LS,
245
+ refreshAccessTokenFetch.data.accessToken
246
+ );
248
247
  }
249
248
  return;
250
249
  } else {
251
250
  window.location.replace(
252
- `${getClientBasePath({ domainName })}/${domainName}/${routes.signin}`
251
+ `${getClientBasePath()}/${domainName}/${routes.signin}`
253
252
  );
254
253
  return resetUser(dispatch);
255
254
  }