From 802b65cfd634305f62d88cb57c54f8c053701d27 Mon Sep 17 00:00:00 2001 From: Wes Bos Date: Wed, 16 May 2018 10:54:08 -0400 Subject: SSR Auth WIP --- backend/src/index.js | 13 ++++++------- frontend/components/Nav.js | 10 +++++++--- frontend/components/Signin.js | 2 +- frontend/components/Signup.js | 1 + frontend/lib/withData.js | 10 ++++++++-- frontend/package-lock.json | 5 +++++ frontend/package.json | 1 + frontend/pages/_app.js | 19 +++++++++++++------ 8 files changed, 42 insertions(+), 19 deletions(-) diff --git a/backend/src/index.js b/backend/src/index.js index 6978225..a3a5309 100644 --- a/backend/src/index.js +++ b/backend/src/index.js @@ -9,8 +9,9 @@ const server = createServer(); server.express.use(cookieParser()); -// 1. Check JWT server.express.use((req, res, next) => { + console.log('Hey'); + const { token } = req.cookies; if (token) { const { userId } = jwt.verify(token, process.env.APP_SECRET); @@ -22,12 +23,10 @@ server.express.use((req, res, next) => { // 2. Get User from their ID server.express.use(async (req, res, next) => { if (!req.userId) return next(); - const user = await server.context().db.query.user( - { where: { id: req.userId } }, - ` - { id, permissions, email, name } - ` - ); + const user = await server + .context() + .db.query.user({ where: { id: req.userId } }, `{ id, permissions, email, name }`); + console.log(user); req.user = user; next(); }); diff --git a/frontend/components/Nav.js b/frontend/components/Nav.js index a90568c..4bbce2d 100644 --- a/frontend/components/Nav.js +++ b/frontend/components/Nav.js @@ -4,14 +4,18 @@ import { Query, ApolloConsumer } from 'react-apollo'; import { CURRENT_USER_QUERY } from '../queries/queries.graphql'; import CartCount from './CartCount'; import Signout from './Signout'; - +import Dump from './Dump'; import NavStyles from './styles/NavStyles'; class Nav extends React.Component { render() { + // below we set the fetchPolicy to network only so it forces re-fetch on the server return ( - - {({ data: { me } }) => ( + + {({ data: { me }, loading, error }) => ( Shop diff --git a/frontend/components/Signin.js b/frontend/components/Signin.js index 7a4db8c..9e25cf1 100644 --- a/frontend/components/Signin.js +++ b/frontend/components/Signin.js @@ -28,7 +28,7 @@ class Signin extends Component { {client => ( {(signin, { loading, error }) => ( -
this.loginUser(e, signin, client)}> + this.loginUser(e, signin, client)}>