Nhost js sdk to handle Auth and Storage.
npm install --save nhost-js-sdk
in ex /src/nhost/index.js
:
import nhost from 'nhost-js-sdk';
const config = {
endpoint: process.env.REACT_APP_BACKEND_ENDPOINT,
};
nhost.initializeApp(config);
const auth = nhost.auth();
const storage = nhost.storage();
export {
auth,
storage
};
import { auth, storage } from './path-to-nhost/index.js';
register_data
is optional
try {
await auth.register(email, username, password, register_data);
} catch (e) {
// handle error
}
try {
await auth.login(username, password);
} catch (e) {
// handle error
}
try {
await auth.signInAnonymously();
} catch (e) {
// handle error
}
auth.logout();
auth.onAuthStateChanged(data => {
console.log('auth state changed!');
console.log({data});
});
try {
await auth.activate_account(secret_token);
} catch (e) {
// handle error
}
try {
await auth.new_password(secret_token, new_password);
} catch (e) {
// handle error
}
metadata
is optional
onUploadProgress
is optional
try {
await storage.put(path, file, metadata, onUploadProgress);
} catch (e) {
// handle error
}
try {
await storage.delete(path);
} catch (e) {
// handle error
}
try {
await storage.getDownloadURL(path);
} catch (e) {
// handle error
}
For React Native you can pass in asyncStorage
for nhost to use instead of the default localStorage
.
import nhost from 'nhost-js-sdk';
import { AsyncStorage } from 'react-native';
import { BACKEND_ENDPOINT } from '../config';
const config = {
endpoint: 'https://backend-xxxxxx.nhost.io/'
storage: AsyncStorage
};
export default new nhost(config);