27 lines
923 B
JavaScript
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}`,
|
|
}
|
|
}
|