NhostAuthConstructorParams

Parameters


url required string
devTools optional boolean Activate devTools e.g. the ability to connect to the xstate inspector
autoSignIn optional boolean When set to true, will parse the url on startup to check if it contains a refresh token to start the session with
autoRefreshToken optional boolean When set to true, will automatically refresh token before it expires
clientStorage optional ClientStorage Object where the refresh token will be persisted and read locally. Recommended values:
  • 'web' and 'cookies': no value is required
  • 'react-native': use @react-native-async-storage/async-storage
    import { NhostClient } from '@nhost/nhost-js'
    import AsyncStorage from '@react-native-async-storage/async-storage';
    const nhost = new NhostClient({
      ...
      clientStorageType: 'react-native',
      clientStorage: AsyncStorage
    })
    
  • 'custom': an object that defines the following methods:
    • setItem or setItemAsync
    • getItem or getItemAsync
    • removeItem
  • 'capacitor':
    import { NhostClient } from '@nhost/nhost-js'
    import { Storage } from '@capacitor/storage'
    const nhost = new NhostClient({
      ...
      clientStorageType: 'capacitor',
      clientStorage: Storage
    })
    
    import { NhostClient  } from '@nhost/nhost-js';
    import { Preferences } from '@capacitor/preferences';
    const nhost = new NhostClient({
      ...
      clientStorageType: 'custom',
      clientStorage: {
        setItemAsync: async (key, value) => Preferences.set({ key, value }),
        getItemAsync: async (key) => {
          const { value } = await Preferences.get({ key });
          return value;
        },
        removeItem(key): (key) => Preferences.remove({ key })
      },
    });
    
  • 'expo-secure-store': use expo-secure-store
      import { NhostClient } from '@nhost/nhost-js'
      import * as SecureStore from 'expo-secure-store';
      const nhost = new NhostClient({
        ...
        clientStorageType: 'expo-secure-store',
        clientStorage: SecureStore
      })
    
PropertyTypeRequiredNotes
clientStorage.setItem(_key: string, _value: string) => void
clientStorage.getItem(key: string) => any
clientStorage.removeItem(key: string) => void
clientStorage.set(options: { key: string, value: string }) => void
clientStorage.get(options: { key: string }) => any
clientStorage.remove(options: { key: string }) => void
clientStorage.setItemAsync(key: string, value: string) => void
clientStorage.getItemAsync(key: string) => any
clientStorage.deleteItemAsync(key: string) => void
clientStorage.customGet(key: string) => null | string | Promise<null | string>
clientStorage.customSet(key: string, value: null | string) => void | Promise<void>

clientStorageType optional ClientStorageType Define a way to get information about the refresh token and its exipration date. @default web
refreshIntervalTime optional number Time interval until token refreshes, in seconds
start optional boolean