Native MSAL auth for ios and android. This was made for one of my projects. As such the not all methods of MSAL are implimented (less than a quarter of them). Furthermore the way they are implimented are for a very specific use case and use a single account. If you need more functionality I would be happy to accept the pull request. Finally, this library uses MSAL for react, ios and android.
For managed Expo projects, please follow the installation instructions in the API documentation for the latest stable release. If you follow the link and there is no documentation available then this library is not yet usable within managed projects — it is likely to be included in an upcoming Expo SDK release.
For bare React Native projects, you must ensure that you have installed and configured the expo package before continuing.
Note
Make sure to configure Azure redirects
npm install expo-msal
add EXPO_PUBLIC_CLIENTID this is needed for web implimentation. The clientId is what is passed to the public client application
This is the main comonent to access the api. See example on how it is used. Three methods
- acquireTokenInteractively On web this redirects the user returns nothing. Prompts user and then returns access token.
- acquireTokenSilently On web this handles the redrect on native retrieves from store (managed by the native msal sdk). Returns a string which is either the api token or "Error".
- signOut Signs the user out. Returns a boolean on the result.
The provider does nothing on native and returns the child, if a web implamentation doesn't exist there is no need for it. On it web starts a public client application and intilizes it. This provider needs to be in a root component (that doesn't get unmounted). Furthermore the useMsal hook can't be used in the component the provider is in or any of that components parents.
Contributions are very welcome! Make a pull request or an issue.