Authentication
Advanced Topics
Nextjs Hooks

Next.js hooks

Introduction

To get more fine-grained control over the login and registration experience, or add your own business logic, you can supply options to the RoqAuth handlers. We provide hooks that allow you to execute code on various events during registration, login, and logout.

Authentication hooks

The following hooks can (optionally) be passed in to the RoqAuth handler

onLoginSuccess

Create a new file: pages/api/[...roqAuth].ts with this content. Next.js will automatically detect and import the handler.

import { RoqAuth } from "@roq/nextjs";
import { User } from "your/server/code";
 
export default RoqAuth({
  hooks: {
    // This hook is optional - and can be used to persist user information,
    // or in the case below - update the last seen for the user on your database
    onLoginSuccess: async ({ session, user }) => {
      User.updateLastSeen(user.id, new Date());
    },
  },
});

onRegisterSuccess

import { RoqAuth } from "@roq/nextjs";
import { Restaurant } from "your/server/code";
 
export default RoqAuth({
  hooks: {
    //Perform some business logic on your server & db
    onRegisterSuccess: async ({ session, user }) => {
      Restaurant.addManager(user.tenantId, user.id);
    },
  },
});