@8base/react-native-auth0-auth-clientdeprecated

The 8base react-native auth0 auth client for the AuthProvider.

Usage no npm install needed!

<script type="module">
  import 8baseReactNativeAuth0AuthClient from 'https://cdn.skypack.dev/@8base/react-native-auth0-auth-client';
</script>

README

8base react-native auth0 auth client

The 8base react-native auth0 auth client for the AuthProvider.

ReactNativeAuth0AuthClient

Table of Contents

ReactNativeAuth0AuthClient

Create an instance of the react-native auth0 auth client.

Parameters

  • workspaceId string Identifier of the 8base app workspace.
  • domain string Domain. See auth0 documentation.
  • clientId string Client id. See auth0 documentation.

Usage

...
import { AuthContext, AuthProvider, type AuthContextProps } from '@8base/auth';
import { ReactNativeAuth0AuthClient } form '@8base/react-native-auth0-auth-client';

  const authClient = new ReactNativeAuth0AuthClient({
    domain: 'domain',
    clientId: 'client-id',
    workspaceId: 'workspace-id',
  });

  ...

  const renderAuth = (auth) => {
    const authorize = async () => {
      const authData = await auth.authorize();

      await auth.setAuthState({
        token: authData.idToken,
        email: authData.email,
      });
    };

    const logout = async () => {
      await auth.purgeAuthState();
    };

    if (auth.isAuthorized) {
      return (
        <View>
          <Text>Hi ${auth.authState.email} !</Text>
          <Button title='Logout' onPress={ logout } />
        </View>
      );
    }

    return (
      <View>
        <Button title='Authorize with auth0' onPress={ authorize } />
      </View>
    );
  };

  ...

  <AuthProvider authClient={ authClient }>
    ...
      <AuthContext.Consumer>
        { renderAuth }
      </AuthContext.Consumer>
    ...  
  </AuthProvider>