rsnext/examples/with-realm-web/lib/RealmClient.js
2021-04-19 21:53:32 -05:00

27 lines
923 B
JavaScript

import { Credentials, App } from 'realm-web'
const APP_ID = process.env.NEXT_PUBLIC_REALM_APP_ID
export const REALM_GRAPHQL_ENDPOINT = `https://realm.mongodb.com/api/client/v2.0/app/${APP_ID}/graphql`
const app = new App({
id: APP_ID,
baseUrl: 'https://realm.mongodb.com',
})
export const generateAuthHeader = async () => {
if (!app.currentUser) {
// If no user is logged in, log in an anonymous user
await app.logIn(Credentials.anonymous())
} else {
// An already logged in user's access token might be stale. To guarantee that the token is
// valid, we refresh the user's custom data which also refreshes their access token.
await app.currentUser.refreshCustomData()
}
// Get a valid access token for the current user
const { accessToken } = app.currentUser
// Set the Authorization header, preserving any other headers
return {
Authorization: `Bearer ${accessToken}`,
}
}