import { Profile } from 'authsafe-react';
function Dashboard() {
return (
<div>
<h1>My Dashboard</h1>
<Profile />
</div>
);
}| Property | Type | Required | Description |
|---|---|---|---|
- | - | - | This component does not accept any props. It automatically uses the authenticated user's data from the AuthProvider context. |
useAuth hook:
import { useAuth } from 'authsafe-react';
function CustomProfile() {
const { user, isAuthenticated } = useAuth();
if (!isAuthenticated) {
return <div>Please log in to view your profile</div>;
}
return (
<div className="custom-profile">
<img src={user?.picture} alt={user?.name} />
<h2>{user?.name}</h2>
<p>{user?.email}</p>
{user?.email_verified && <span>✓ Verified</span>}
</div>
);
}import { Profile, useAuth } from 'authsafe-react';
function UserDashboard() {
const { isAuthenticated, isLoading } = useAuth();
if (isLoading) {
return <div>Loading...</div>;
}
if (!isAuthenticated) {
return <div>Please log in to view your profile</div>;
}
return (
<div>
<h1>My Profile</h1>
<Profile />
</div>
);
}import { createTheme, ThemeProvider } from '@mui/material/styles';
import { Profile } from 'authsafe-react';
const theme = createTheme({
palette: {
primary: {
main: '#1976d2',
},
},
});
function App() {
return (
<ThemeProvider theme={theme}>
<Profile />
</ThemeProvider>
);
}interface User {
sub: string; // Unique user identifier
name?: string; // User's full name
email?: string; // User's email address
picture?: string; // Profile picture URL
email_verified?: boolean; // Email verification status
[key: string]: any; // Additional claims
}