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} = useInfoViewActionsContext(); return ( <JWTAuthProvider fetchStart={fetchStart} fetchError={fetchError} fetchSuccess={fetchSuccess} > {children} </JWTAuthProvider> ); }; export default AppAuthProvider;// ForJWT Auth import {getUserFromJwtAuth} from "@crema/helpers/AuthHelper"; import {useJWTAuth, useJWTAuthActions} from "@crema/services/auth/jwt-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 './SigninJwtAuth'; 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', };import React from 'react'; import {useInfoViewActionsContext} from '@crema/context/AppContextProvider/InfoViewContextProvider'; import FirebaseAuthProvider from '@crema/services/auth/firebase/FirebaseAuthProvider'; import PropTypes from 'prop-types'; const AppAuthProvider = ({children}) => { const {fetchStart, fetchSuccess, fetchError, showMessage} = useInfoViewActionsContext(); return ( <FirebaseAuthProvider fetchStart={fetchStart} fetchError={fetchError} fetchSuccess={fetchSuccess} showMessage={showMessage} > {children} </FirebaseAuthProvider> ); }; AppAuthProvider.propTypes = { children: PropTypes.node, }; export default AppAuthProvider;//For Firebase Auth import { useFirebase, useFirebaseActions, } from '@crema/services/auth/firebase/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 './SigninFirebase'; 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', };import React from 'react'; import {useInfoViewActionsContext} from '@crema/context/AppContextProvider/InfoViewContextProvider'; import AWSAuthProvider from '@crema/services/auth/aws-cognito/AWSAuthProvider'; import PropTypes from 'prop-types'; const AppAuthProvider = ({children}) => { const {fetchStart, fetchSuccess, fetchError, showMessage} = useInfoViewActionsContext(); return ( <AWSAuthProvider fetchStart={fetchStart} fetchError={fetchError} fetchSuccess={fetchSuccess} showMessage={showMessage} > {children} </AWSAuthProvider> ); }; AppAuthProvider.propTypes = { children: PropTypes.node, }; export default AppAuthProvider;// For AWS Auth import {getUserFromAWS} from '@crema/helpers/AuthHelper'; import {useAwsCognito, useAwsCognitoActions} from '../services/auth'; export const useAuthUser = () => { // eslint-disable-next-line no-undef 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 './SigninAwsCognito'; 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', }); };import React from 'react'; import {useInfoViewActionsContext} from '@crema/context/AppContextProvider/InfoViewContextProvider'; import Auth0Provider from '@crema/services/auth/auth0/Auth0Provider'; import PropTypes from 'prop-types'; const AppAuthProvider = ({children}) => { const {fetchStart, fetchSuccess, fetchError, showMessage} = useInfoViewActionsContext(); return <Auth0Provider>{children}</Auth0Provider>; }; AppAuthProvider.propTypes = { children: PropTypes.node, }; export default AppAuthProvider;//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