From 79c54301f1e1c3b72f451b98b3120f01461f35c9 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Sun, 8 Oct 2023 21:09:54 +0300 Subject: SSR auth WIP --- vnext/server/middleware/renderer.js | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/vnext/server/middleware/renderer.js b/vnext/server/middleware/renderer.js index ae2600a7..bcecf760 100644 --- a/vnext/server/middleware/renderer.js +++ b/vnext/server/middleware/renderer.js @@ -11,6 +11,8 @@ import { VisitorProvider } from '../../src/ui/VisitorContext' import path from 'path' import fs from 'fs' +import { me } from '../../src/api' +import { HelmetProvider } from 'react-helmet-async' const STATIC_ROOT = config.get('service.static_root') || path.resolve(__dirname, 'public') @@ -22,6 +24,15 @@ const serverRenderer = async (req, res) => { // links const cookies = cookie.parse(req.headers.cookie || '') + + let visitor + + try { + visitor = await me() + } catch(e) { + console.log('Unauthenticated') + } + const links = await getLinks(req.originalUrl, cookies['sape_cookie']) fs.readFile(filePath, 'utf8', (err, htmlData) => { if (err) { @@ -40,10 +51,12 @@ const serverRenderer = async (req, res) => { const propsData = `${marker}` let didError = false const { pipe } = ReactDOMServer.renderToPipeableStream( - - - - + + + + + + , { onShellReady() { @@ -58,10 +71,10 @@ const serverRenderer = async (req, res) => { res.statusCode = 500 res.setHeader('Content-type', 'text/html') res.send( - '

Something went wrong :(

' + '

Something went wrong :(

' ) res.end() - }, + }, onAllReady() { if (!didError) { res.write(data[1]) -- cgit v1.2.3