mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
798ae043ac
Fixes #153 This is my attempt at https://github.com/zeit/next.js/issues/153 Following @rauchg instructions: - it uses an authentication helper across pages which returns a token if there's one - it has session synchronization across tabs - <strike>I deployed a passwordless backend on `now.sh` (https://with-cookie-api.now.sh, [src](https://github.com/j0lv3r4/next.js-with-cookies-api))</strike> The backend is included in the repository and you can deploy everything together by running `now` Also, from reviewing other PRs, I made sure to: - use [isomorphic-unfetch](https://www.npmjs.com/package/isomorphic-unfetch). - use [next-cookies](https://www.npmjs.com/package/next-cookies). Here's a little demo: ![GIF](https://i.imgur.com/067Ph56.gif)
59 lines
996 B
JavaScript
59 lines
996 B
JavaScript
import Link from 'next/link'
|
|
import { logout } from '../utils/auth'
|
|
|
|
const Header = props => (
|
|
<header>
|
|
<nav>
|
|
<ul>
|
|
<li>
|
|
<Link href='/'>
|
|
<a>Home</a>
|
|
</Link>
|
|
</li>
|
|
<li>
|
|
<Link href='/login'>
|
|
<a>Login</a>
|
|
</Link>
|
|
</li>
|
|
<li>
|
|
<Link href='/profile'>
|
|
<a>Profile</a>
|
|
</Link>
|
|
</li>
|
|
<li>
|
|
<button onClick={logout}>Logout</button>
|
|
</li>
|
|
</ul>
|
|
</nav>
|
|
<style jsx>{`
|
|
ul {
|
|
display: flex;
|
|
list-style: none;
|
|
margin-left: 0;
|
|
padding-left: 0;
|
|
}
|
|
|
|
li {
|
|
margin-right: 1rem;
|
|
}
|
|
|
|
li:first-child {
|
|
margin-left: auto;
|
|
}
|
|
|
|
a {
|
|
color: #fff;
|
|
text-decoration: none;
|
|
}
|
|
|
|
header {
|
|
padding: 0.2rem;
|
|
color: #fff;
|
|
background-color: #333;
|
|
}
|
|
`}</style>
|
|
</header>
|
|
)
|
|
|
|
export default Header
|