Skip to content

Instantly share code, notes, and snippets.

View igorasilveira's full-sized avatar

Igor Silveira igorasilveira

View GitHub Profile
@igorasilveira
igorasilveira / profile.js
Created February 19, 2022 09:45
profile.js
import { useUser, withPageAuthRequired } from "@auth0/nextjs-auth0";
import Head from "next/head";
import Navbar from "../components/Navbar";
import styles from "../styles/Home.module.css";
function Profile({ user, error, isLoading }) {
if (isLoading) return <div>Loading...</div>;
if (error) return <div>{error.message}</div>;
return (
@igorasilveira
igorasilveira / Navbar.js
Created February 19, 2022 09:45
Navbar.js
export default function Navbar() {
const { user } = useUser();
return (
<nav className={styles.nav}>
<Link href="/">Navbar</Link>
<div>
{user ? (
<div>
<a style={{ marginRight: 8 }} href="/profile">
@igorasilveira
igorasilveira / profile.js
Created February 19, 2022 09:44
profile.js
import { useUser } from "@auth0/nextjs-auth0";
import Head from "next/head";
import Navbar from "../components/Navbar";
import styles from "../styles/Home.module.css";
export default function Profile() {
const { user, error, isLoading } = useUser();
if (isLoading) return <div>Loading...</div>;
if (error) return <div>{error.message}</div>;
return (
@igorasilveira
igorasilveira / Navbar.js
Created February 19, 2022 09:43
Navbar.js
export default function Navbar() {
const { user } = useUser();
return (
<nav className={styles.nav}>
<Link href="/">Navbar</Link>
<div>
<button>
{user ? (
<a href="/api/auth/logout">Logout</a>
) : (
@igorasilveira
igorasilveira / Navbar.js
Last active February 19, 2022 09:44
Navbar update
import Link from 'next/link'; // <- Imported Link from NextJS
export default function Navbar() {
return (
<nav className={styles.nav}>
<Link href="/">Navbar</Link> {/* <- Used here */}
<div>
<button>
<a href="/api/auth/login">Login</a>{" "}
{/* <- Updated here, we should keep it as an anchor tag for api routes */}
@igorasilveira
igorasilveira / _app.js
Last active February 19, 2022 09:44
App JS
import '../styles/globals.css'
import { UserProvider } from '@auth0/nextjs-auth0';
export default function App({ Component, pageProps }) {
return (
<UserProvider>
<Component {...pageProps} />
</UserProvider>
);
}
@igorasilveira
igorasilveira / [...auth0].js
Created February 19, 2022 09:41
Auth0 Api page
import { handleAuth } from '@auth0/nextjs-auth0';
export default handleAuth();
@igorasilveira
igorasilveira / .env
Created February 19, 2022 09:41
Env Auth0
AUTH0_SECRET=<YOUR_AUTH0_SECRET>
AUTH0_BASE_URL=http://localhost:3000
AUTH0_ISSUER_BASE_URL=<YOUR_AUTH0_DOMAIN>
AUTH0_CLIENT_ID=<YOUR_AUTH0_CLIENT_ID>
AUTH0_CLIENT_SECRET=<YOUR_AUTH0_CLIENT_SECRET>
.nav {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: 24px;
font-size: 1.4rem;
font-weight: bold;
border-bottom: 2px solid rgba(0, 0, 0, 0.1);
}
@igorasilveira
igorasilveira / Navbar.js
Created February 19, 2022 09:38
Navbar component
import React from "react";
import styles from "../styles/Navbar.module.css";
export default function Navbar() {
return (
<nav className={styles.nav}>
<a href="/">Navbar</a>
<div>
<button>
<a href="/login">Login</a>
</button>