@next-auth/upstash-redis-adapter
v3.0.4
Published
Upstash adapter for next-auth. It uses Upstash's connectionless (HTTP based) Redis client.
Downloads
2,670
Readme
Overview
This is the Upstash Redis adapter for next-auth
. This package can only be used in conjunction with the primary next-auth
and @upstash/redis
packages. It is not a standalone package.
Getting Started
- Install
next-auth
and@next-auth/upstash-redis-adapter
as well as@upstash/redis
via NPM.
npm install next-auth @next-auth/upstash-redis-adapter @upstash/redis
- Add the following code to your
pages/api/[...nextauth].js
next-auth configuration object.
import NextAuth from "next-auth"
import { UpstashRedisAdapter } from "@next-auth/upstash-adapter"
import { Redis } from "@upstash/redis"
const redis = new Redis({
url:"UPSTASH_REDIS_REST_URL",
token:"UPSTASH_REDIS_REST_TOKEN",
})
// For more information on each option (and a full list of options) go to
// https://authjs.dev/reference/configuration/auth-options
export default NextAuth({
...
adapter: UpstashRedisAdapter(redis)
...
})
Using Multiple Apps with a Single Upstash Redis Instance
The Upstash free-tier allows for only one Redis instance. If you have multiple Next-Auth connected apps using this instance, you need different key prefixes for every app.
You can change the prefixes by passing an options
object as the second argument to the adapter factory function.
The default values for this object are:
const defaultOptions = {
baseKeyPrefix: "",
accountKeyPrefix: "user:account:",
accountByUserIdPrefix: "user:account:by-user-id:",
emailKeyPrefix: "user:email:",
sessionKeyPrefix: "user:session:",
sessionByUserIdKeyPrefix: "user:session:by-user-id:",
userKeyPrefix: "user:",
verificationTokenKeyPrefix: "user:token:",
}
Usually changing the baseKeyPrefix
should be enough for this scenario, but for more custom setups, you can also change the prefixes of every single key.
Example:
export default NextAuth({
...
adapter: UpstashRedisAdapter(redis, {baseKeyPrefix: "app2:"})
...
})
Contributing
We're open to all community contributions! If you'd like to contribute in any way, please read our Contributing Guide.
License
ISC