0.0.1 • Published 2 years ago

nextparty v0.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

Nextparty

Install

npm install nextparty

and import from project

import Nextparty from 'nextparty'

of

const Nextparty = require('nextparty')

Usage

1. Authentication

To add authentication to your app, all you need to do is create a file named: /pages/api/privateparty/[[...route]].js:

// Authentication
const Nextparty = require('nextparty')
const party = new Nextparty({
  secret: "secret"
})
party.add(“user”)
export default function handler(req, res) {
	return party.handler(req, res)
}

Note that the file exports a handler function that calls party.handler(req, res)

2. Protect routes

Protect Pages

You can protect pages with getServerSideProps:

import Nextparty from 'nextparty'
const party = new Nextparty({
  secret: "secret"
})
export default function Home() {
  return (
    <h1>Hello world</h1>
  )
}

// Just add this function to protect this page
export async function getServerSideProps({ req, res }) {
  let error = await party.protect("user", req, res)
  if (error) {
    return error
  } else {
    return { props: {} }
  }
}

Note that:

  • the secret must match the secret used in the authentication step

Protect API

Let's protect the route /api/hello by creating a file at /pages/api/hello.js (next.js convention)

const Nextparty = require('nextparty')
const party = new Nextparty({
  secret: "secret"  // cookie signing secret
})
export default async function handler(req, res) {
  let error = await party.protect("member", req, res)
  if (error) {
    res.json({ error: "not authorized", login: error.redirect })
  } else {
    res.json(req.session)
  }
}

Note that:

  • the secret must match the secret used in the authentication step