-
Notifications
You must be signed in to change notification settings - Fork 0
/
api-profile.tsx
37 lines (29 loc) · 962 Bytes
/
api-profile.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import { useEffect, useState } from 'react'
import { useUser } from '@auth0/nextjs-auth0'
import Layout from '../../components/layout'
const ApiProfile = () => {
const { user, isLoading } = useUser()
const [data, setData] = useState(null)
useEffect(() => {
;(async () => {
const res = await fetch('/api/protected-api')
const data = await res.json()
setData(data)
})()
}, [])
return (
<Layout user={user} loading={isLoading}>
<h1>Profile</h1>
<div>
<h3>Public page (client rendered)</h3>
<p>We are fetching data on the client-side :</p>
<p>By making request to '/api/protected-api' serverless function</p>
<p>so without a valid session cookie will fail</p>
<p>{JSON.stringify(data)}</p>
</div>
</Layout>
)
}
// Public route.(CSR) also accessing API from the client-side.
// data is not cached when redirecting between pages.
export default ApiProfile