An authentication library that uses expo-auth-session (mobile) and @azure/msal-browser (web) under the hood
A simple authentication package used by the mad-team. It uses expo-auth-session and
@azure/msal-browser under the hood, and requires you to set up an app registration in azure.
Add our provided LoginButton to your application:
``tsx`
export const LoginScreen = () => {
const navigation = useNavigation
return (
height: "100%",
alignItems: "center",
justifyContent: "center",
flexDirection: "row",
}}
>
clientId="49222fe1-4e0a-4310-9e81-1a2c3eb9b2ed"
onAuthenticationSuccessful={() => navigation.navigate("Root")}
onAuthenticationFailed={() => console.error("Unable to authenticate")}
enableAutomaticAuthentication
/>
);
};
The LoginButton provided by this package uses @equinor/mad-components's Button component. YouLoginButton
can style it however you want. However, if you want to create your own from scratch,useAuthenticate
you can do so by using the hook. See the implementation of our LoginButton if
you need some inspiration. Alternatively, you can create the login flow logic from scratch using the
provided functions below.
This package provides a few basic functions you can use to either make your own login button, or use
throughout the app:
If you are not using our login button, nor useAuthenticate, use this function to initate the
authentication client:
`ts`
initiateAuthenticationClient({clientId: string, redirectUri: string, authority?: string}): Promise
To check if the authentication client exists, use this function:
`ts`
authenticationClientExists(): boolean
To authenticate interactively, use this function:
`ts`
authenticateInteractively(scope: string[]): Promise
To authenticate silently, use this function:
`ts`
authenticateSilently(scope: string[]): Promise
To get account, use this function:
`ts`
getAccount(): Promise
Alternatively, you can use this hook to get account:
`ts``
useAccount(): MadAccount | null