use-magic-link v1.1.1
use-magic-link
Simple auth setup for your React app in few minutes with Magic Link.
Install the React Hook
yarn add use-magic-linkExample
Here's how this React hook works:
// Get this with "yarn add use-magic-link"
import useMagicLink from 'use-magic-link'
export default function Home() {
// create the hook
const auth = useMagicLink('<Publishable Key>');
function loginNow() {
const email = prompt('Enter your email');
auth.login(email);
}
function getContent() {
// Show a loading screen until we detect the login-state
if (auth.loading || auth.loggingIn || auth.loggingOut) {
return '...'
}
// Show this, if logged in
if (auth.loggedIn) {
return (
<div>
You are logged-in.
<br/>
<button onClick={() => auth.logout()}>Logout</button>
</div>
)
}
// Show this, if not logged-in
return (
<div>
<button onClick={loginNow}>Login Now</button>
</div>
)
}
return (
<div className="container">
<main>
<h1>Next.js Bank</h1>
<div className="content">{getContent()}</div>
</main>
</div>
)
}API
You will get an auth object after you call the use-magic-link React hook.
Make sure to call this inside a functional component or inside another React hook.
import useMagicLink from 'use-magic-link'
// inside a functional component
const auth = useMagicLink('<Publishable Key>')You can get the
<Publishable Key>by logging into the Magic Link dashboard.
Here are the properties of auth:
auth.loading
It will be true, until we load additional libraries and check the current login state.
auth.loggedIn
It will be true, if we are loggedIn, otherwise false.
auth.loggingIn
It will be true, once we start the login process.
auth.loggingOut
It will be true, once we start the logout process.
auth.error
Store the error object, if something goes wrong.
auth.login(email)
You can start the login process by passing a valid email.
auth.logout()
You can start the logout process.
auth.fetch
An instance of fetch, which automatically includes the Magic Link token. You can use this to call any API which uses @magic-sdk/admin NPM module to authenticate the request.
Read this guide for more information
auth.magic
The underline Magic Link API client. Read Magic Link documentation on how to use it.