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 App = () => ( <AppContextProvider> ... <JWTAuthProvider> //Add the line <AuthRoutes> <CssBaseline /> <AppLayout /> </AuthRoutes> </JWTAuthProvider> ... </AppContextProvider> ); export default App;// ForJWT Auth import {getUserFromJwtAuth} from './helper/AuthHelper'; import { useJWTAuth, useJWTAuthActions, } from '../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, }; };const SignIn = () => { return ( <Box> ... <SigninJwtAuth /> ... </Box> ); }; export default SignIn;
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 App = () => ( <AppContextProvider> ... <FirebaseAuthProvider> //Add the line <AuthRoutes> <CssBaseline /> <AppLayout /> </AuthRoutes> </FirebaseAuthProvider> ... </AppContextProvider> ); export default App;import { useFirebase, useFirebaseActions, } from '../services/auth/firebase/FirebaseAuthProvider'; import {getUserFromFirebase} from './helper/AuthHelper'; export const useAuthUser = () => { const {user, isAuthenticated, isLoading} = useFirebase(); return { isLoading, isAuthenticated, user: getUserFromFirebase(user), }; }; export const useAuthMethod = () => { const { signInWithEmailAndPassword, createUserWithEmailAndPassword, signInWithPopup, logout, } = useFirebaseActions(); return { signInWithEmailAndPassword, createUserWithEmailAndPassword, signInWithPopup, logout, }; };const SignIn = () => { return ( <Box> ... <SigninFirebase /> ... </Box> ); }; export default SignIn;
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 App = () => ( <AppContextProvider> ... <AwsAuthProvider> //Add the line <AuthRoutes> <CssBaseline /> <AppLayout /> </AuthRoutes> </AwsAuthProvider> ... </AppContextProvider> ); export default App;import {getUserFromAWS} from './helper/AuthHelper'; import { useAwsCognito, useAwsCognitoActions, } from '../services/auth/aws-cognito/AWSAuthProvider'; export const useAuthUser = () => { const {user, isAuthenticated, isLoading} = useAwsCognito(); return { isLoading, isAuthenticated, user: getUserFromAWS(user), }; }; export const useAuthMethod = () => { const { signIn, signUpCognitoUser, confirmCognitoUserSignup, logout, } = useAwsCognitoActions(); return { signIn, signUpCognitoUser, confirmCognitoUserSignup, logout, }; };const SignIn = () => { return ( <Box> ... <SigninAwsCognito/> ... </Box> ); }; export default SignIn;
const Auth0Config = async () => { return await createAuth0Client({ client_id: 'XXXXXXXXXX', domain: 'XXXXXXXXXX.auth0.com', redirect_uri: 'XXXXXXXXXX', audience: 'https://XXXXXXXXXX.auth0.com/userinfo', }); };.... import Auth0Provider from "./@crema/services/auth/auth0/Auth0Provider"; const App = () => ( <AppContextProvider> ... <Auth0Provider> //Add the line <AuthRoutes> <CssBaseline /> <AppLayout /> </AuthRoutes> </AwsAuthProvider> ... </Auth0Provider> ); export default App;export const useAuthUser = () => { const {user, isAuthenticated, isLoading} = useAuth0(); console.log( 'user, isAuthenticated, isLoading', user, isAuthenticated, isLoading, ); return { isLoading, isAuthenticated, user: useMemo(() => getUserFromAuth0(user), []), }; }; export const useAuthMethod = () => { const {loginWithRedirect, logout} = useAuth0(); return {loginWithRedirect, logout}; };
Last updated