This is a simple wrapper for the Mantine UI library to work with AWS Cognito.
npm i @espresso-lab/mantine-cognito
import { MantineAuth, MFASetup } from "@espresso-lab/mantine-cognito";
function App() {
return (
<MantineAuth
cognitoUserPoolId="<cognito-user-pool-id>"
cognitoClientId="<cognito-client-id>"
language="en"
>
<p>You are logged in!</p>
<MFASetup mfaAppName="Test" />
</MantineAuth>
);
}
export default App;
In the example above, the MantineAuth
component will handle the authentication flow with AWS Cognito. The MFASetup
component will handle the MFA setup flow.
import { Button, Paper, Title } from "@mantine/core";
import { useAuth } from "@espresso-lab/mantine-cognito";
export function AnyComponent() {
const { logout, userAttributes } = useAuth();
const { given_name } = userAttributes || {};
return (
<Paper>
<Title>Hello {given_name}</Title>
<Button onClick={logout}>Logout</Button>
</Paper>
);
}
In the example above, the useAuth
hook is used to get the user attributes and the logout function.
The useAuth
hook works only inside the MantineAuth
-Provider.
import { getIdToken, getAccessToken } from "@espresso-lab/mantine-cognito";
export async function myApiCall() {
fetch("https://example.com/api", {
method: "GET",
headers: {
"Authorization": await getIdToken() ?? ""
}
});
}