Skip to content

Instantly share code, notes, and snippets.

@dyarfi
dyarfi / auth.js
Last active February 27, 2021 18:52
User collection examples
import bcrypt from 'bcryptjs';
import jwt from 'jsonwebtoken';
/* JWT secret key */
const KEY = process.env.JWT_KEY;
/* Users collection sample */
const USERS = [
{
id: 1,
email: 'example1@example.com',
@dyarfi
dyarfi / utils.js
Last active September 9, 2020 09:48
Utilities JWT
import Router from 'next/router';
import Cookies from 'js-cookie';
import jwt from 'jsonwebtoken';
const SECRET_KEY = process.env.JWT_KEY;
/*
* @params {jwtToken} extracted from cookies
* @return {object} object of extracted token
@dyarfi
dyarfi / package.json
Created September 7, 2020 17:56
Package for Next.js with JWT
{
"name": "nextjs-jwt",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start"
},
"dependencies": {
@dyarfi
dyarfi / about.js
Created September 9, 2020 09:49
./pages/about.js in Next.js with JWT Authentication
import React from 'react';
import Link from 'next/link';
/* middleware */
import {
absoluteUrl,
getAppCookies,
verifyToken,
setLogout,
} from '../middleware/utils';
@dyarfi
dyarfi / index.js
Created September 9, 2020 09:53
./pages/index.js in Next.js with JWT Authentication
import React, { useState } from 'react';
import Link from 'next/link';
import Router from 'next/router';
import Cookies from 'js-cookie';
/* middleware */
import {
absoluteUrl,
getAppCookies,
verifyToken,
@dyarfi
dyarfi / FormLogin.jsx
Created September 9, 2020 09:57
./components/form/FormLogin.jsx in Next.js with JWT Authentication
function FormLogin({ props }) {
const {
onSubmitHandler,
onChangeHandler,
stateFormData,
stateFormError,
stateFormMessage,
} = props;
return (
<form className="form-login card" method="POST" onSubmit={onSubmitHandler}>
@dyarfi
dyarfi / Layout.jsx
Last active June 16, 2021 16:15
./components/layout/Layout.jsx in Next.js with JWT Authentication
/* next.js head */
import Head from 'next/head';
/* components */
import Header from '../header/Header';
import Footer from '../footer/Footer';
export default function Layout({
children,
title = 'Next.js with JWT Authentication | A boilerplate JWT Authentication and Next.js from dyarfi.github.io',
@dyarfi
dyarfi / schema.prisma
Last active March 3, 2021 15:20
prisma/schema.prisma
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model Job {
@dyarfi
dyarfi / semantic.html
Last active June 19, 2021 14:46
A sample of semantic HTML5 web page
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Your Website Title</title>
<meta name="description" content="Your Website Description">
</head>
<body>
<header class="header">
@dyarfi
dyarfi / next.config.js
Created March 7, 2021 18:04
Next.js config for SEO default
module.exports = {
serverRuntimeConfig: {
// Will only be available on the server side
mySecret: 'secret',
secretKey: 'secretKey',
jwtToken: 'JwtToken',
},
publicRuntimeConfig: {
// Will be available on both server and client
// Pass through env variables