This package is a series of helper tools for working with Azure Static Web Apps Authentication and Authorization from React.
You can install a stable release from npm:
npm install @aaronpowell/react-static-web-apps-auth
Or you can install the latest build from GitHub packages.
The package contains some components that wrap the functionality for you.
const Login = () => {
return (
<div>
<h2>Login to our site</h2>
<StaticWebAppsAuthLogins aad={true} twitter={false} customProviders={[ id: "okta", name: "Okta" ]} />
</div>
);
};
This component will display all the auth providers you want to use on your application and links for the user. Custom OIDC providers can be registered using the customProviders
prop and provide the id
of the provider and the name
you want displayed to the user.
By default, only managed auth providers will display, but they can be turned off by setting their corresponding prop to false
. All providers available as configurable options can be enabled using props.
To redirect to a specific URL post-login, provide that path in the postLoginRedirect
prop.
The default label is Sign in using ${name}
, but can be overridden with the label
prop, which takes a function that receives the name
of the provider and returns the label string.
const App = () => {
return (
<ClientPrincipalContextProvider>
<MySite />
</ClientPrincipalContextProvider>
);
};
This component provides React Context for the current user (or a series of undefined
values when you're not logged in), aligning with the information available in the Client Principal.
Additionally, a useContext
React Hook is available, useClientPrincipal
, for use within the application.
This component provides the logout function through Static Web Apps.
To redirect to a specific URL post-logout, provide the path in the postLogoutRedirect
prop.
This component provides the user with the ability to remove their identifying information from Static Web Apps. By default it'll only purge them from the current domain, but set the globally
prop to true
if you with to give them the ability to completely remove themselves from Static Web Apps.
Each of the components generates minimal HTML (a single <a>
tag) to make it easier to style within an application. The DOM elements have the class azure-swa-auth
, defined in ./constants
as StaticWebAppsClassName
, on them, along with the component type, login
, logout
or purge
.
Additionally, the login components have the provider as a class, so providers can be styled individually.
MIT