Authentication Methods
Crema supports JWT Auth, Auth0, Firebase, Aws auth methods
const jwtAxios = axios.create({ baseURL: 'YOUR_API_URL HERE', headers: { 'Content-Type': 'application/json', }, });export const setAuthToken = (token) => { if (token) { jwtAxios.defaults.headers.common['Authorization'] = 'Bearer ' + token;// Change this according your requirement localStorage.setItem('token', token); } else { delete jwtAxios.defaults.headers.common['Authorization']; localStorage.removeItem('token'); } };const AppAuthProvider = ({children}) => { const {fetchStart, fetchSuccess, fetchError, showMessage} = useInfoViewActionsContext(); return ( <JWTAuthProvider fetchStart={fetchStart} fetchError={fetchError} fetchSuccess={fetchSuccess} showMessage={showMessage} > {children} </JWTAuthProvider> ); }; export default AppAuthProvider;// ForJWT Auth import { getUserFromJwtAuth } from '@crema/helpers/AuthHelper'; import { useJWTAuth, useJWTAuthActions, } from "@crema/services/auth/JWTAuthProvider"; export const useAuthUser = () => { const { user, isAuthenticated, isLoading } = useJWTAuth(); return { isLoading, isAuthenticated, user: getUserFromJwtAuth(user), }; }; export const useAuthMethod = () => { const { signInUser, signUpUser, logout } = useJWTAuthActions(); return { signInUser, logout, signUpUser, }; };import { SigninJwtAuth } from '@crema/modules/auth/SignIn'; export default SigninJwtAuth;
const firebaseConfig = { apiKey: 'XXXXXXXXXXXXXXXXXXX', authDomain: 'XXXXXXXXXX.firebaseapp.com', projectId: 'XXXXXXXXXX', storageBucket: 'XXXXXXXXXX.appspot.com', messagingSenderId: 'XXXXXXXXXX', appId: '1:XXXXXXXXXX:web:XXXXXXXXXX', measurementId: 'G-XXXXXXXXXX', };const AppAuthProvider = ({children}) => { const {fetchStart, fetchSuccess, fetchError, showMessage} = useInfoViewActionsContext(); return ( <FirebaseAuthProvider fetchStart={fetchStart} fetchError={fetchError} fetchSuccess={fetchSuccess} showMessage={showMessage} > {children} </FirebaseAuthProvider> ); };//For Firebase Auth import { useFirebase, useFirebaseActions, } from '@crema/services/auth/FirebaseAuthProvider'; import { getUserFromFirebase } from '@crema/helpers/AuthHelper'; export const useAuthUser = () => { const { user, isAuthenticated, isLoading } = useFirebase(); return { isLoading, isAuthenticated, user: getUserFromFirebase(user), }; }; export const useAuthMethod = () => { const { logInWithEmailAndPassword, registerUserWithEmailAndPassword, logInWithPopup, logout, } = useFirebaseActions(); return { logInWithEmailAndPassword, registerUserWithEmailAndPassword, logInWithPopup, logout, }; };import { SigninFirebase } from '@crema/modules/auth/SignIn'; export default SigninFirebase;
export const awsConfig = { aws_project_region: 'us-east-1', aws_cognito_identity_pool_id: 'us-east-1:XXXXXXXXXX, aws_cognito_region: 'us-east-1', aws_user_pools_id: 'us-east-XXXXXXXXXX', aws_user_pools_web_client_id: 'XXXXXXXXXX', oauth: { domain: 'XXXXXXXXXX.auth.us-east-1.amazoncognito.com', scope: [ 'phone', 'email', 'openid', 'profile', 'aws.cognito.signin.user.admin', ], redirectSignIn: 'http://localhost:3000/', redirectSignOut: 'http://localhost:3000/', responseType: 'code', }, federationTarget: 'COGNITO_USER_POOLS', };const AppAuthProvider = ({children}) => { const {fetchStart, fetchSuccess, fetchError, showMessage} = useInfoViewActionsContext(); return ( <AWSAuthProvider fetchStart={fetchStart} fetchError={fetchError} fetchSuccess={fetchSuccess} showMessage={showMessage} > {children} </AWSAuthProvider> ); };// For AWS Auth import {getUserFromAWS} from '@crema/helpers/AuthHelper'; import { useAwsCognito, useAwsCognitoActions, } from '@crema/services/auth/AWSAuthProvider'; export const useAuthUser = () => { const {auth, user, isAuthenticated, isLoading} = useAwsCognito(); return { auth, isLoading, isAuthenticated, user: getUserFromAWS(user), }; }; export const useAuthMethod = () => { const { signIn, signUpCognitoUser, confirmCognitoUserSignup, logout, } = useAwsCognitoActions(); return { signIn, signUpCognitoUser, confirmCognitoUserSignup, logout, }; };import { SigninAwsCognito } from '@crema/modules/auth/SignIn'; export default SigninAwsCognito;
const Auth0Config = async () => { return await createAuth0Client({ client_id: 'XXXXXXXXXX', domain: 'XXXXXXXXXX.auth0.com', redirect_uri: 'XXXXXXXXXX', audience: 'https://XXXXXXXXXX.auth0.com/userinfo', }); };const AppAuthProvider = ({children}) => { return <Auth0Provider>{children}</Auth0Provider>; };//For Auth0 import { useAuth0 } from '@auth0/auth0-react'; import { useMemo } from 'react'; import { getUserFromAuth0 } from '@crema/helpers/AuthHelper'; export const useAuthUser = () => { const { user, isAuthenticated, isLoading } = useAuth0(); return { isLoading, isAuthenticated, user: useMemo(() => getUserFromAuth0(user), []), }; }; export const useAuthMethod = () => { const { loginWithRedirect, logout } = useAuth0(); return { loginWithRedirect, logout }; };
Last updated