mirror of
https://github.com/SrIzan10/next-auth.git
synced 2026-05-01 10:55:20 +00:00
Compare commits
5 Commits
@next-auth
...
next-auth@
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ac5d8a9795 | ||
|
|
965c6267e2 | ||
|
|
bfc429d20b | ||
|
|
2d8e910a19 | ||
|
|
d16e04848e |
@@ -114,6 +114,12 @@ session: {
|
|||||||
// Use it to limit write operations. Set to 0 to always update the database.
|
// Use it to limit write operations. Set to 0 to always update the database.
|
||||||
// Note: This option is ignored if using JSON Web Tokens
|
// Note: This option is ignored if using JSON Web Tokens
|
||||||
updateAge: 24 * 60 * 60, // 24 hours
|
updateAge: 24 * 60 * 60, // 24 hours
|
||||||
|
|
||||||
|
// The session token is usually either a random UUID or string, however if you
|
||||||
|
// need a more customized session token string, you can define your own generate function.
|
||||||
|
generateSessionToken: () => {
|
||||||
|
return randomUUID?.() ?? randomBytes(32).toString("hex")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@next-auth/upstash-redis-adapter",
|
"name": "@next-auth/upstash-redis-adapter",
|
||||||
"version": "3.0.1",
|
"version": "3.0.2",
|
||||||
"description": "Upstash adapter for next-auth. It uses Upstash's connectionless (HTTP based) Redis client.",
|
"description": "Upstash adapter for next-auth. It uses Upstash's connectionless (HTTP based) Redis client.",
|
||||||
"homepage": "https://next-auth.js.org",
|
"homepage": "https://next-auth.js.org",
|
||||||
"repository": "https://github.com/nextauthjs/next-auth",
|
"repository": "https://github.com/nextauthjs/next-auth",
|
||||||
|
|||||||
@@ -165,13 +165,20 @@ export function UpstashRedisAdapter(
|
|||||||
},
|
},
|
||||||
async createVerificationToken(verificationToken) {
|
async createVerificationToken(verificationToken) {
|
||||||
await setObjectAsJson(
|
await setObjectAsJson(
|
||||||
verificationTokenKeyPrefix + verificationToken.identifier,
|
verificationTokenKeyPrefix +
|
||||||
|
verificationToken.identifier +
|
||||||
|
":" +
|
||||||
|
verificationToken.token,
|
||||||
verificationToken
|
verificationToken
|
||||||
)
|
)
|
||||||
return verificationToken
|
return verificationToken
|
||||||
},
|
},
|
||||||
async useVerificationToken(verificationToken) {
|
async useVerificationToken(verificationToken) {
|
||||||
const tokenKey = verificationTokenKeyPrefix + verificationToken.identifier
|
const tokenKey =
|
||||||
|
verificationTokenKeyPrefix +
|
||||||
|
verificationToken.identifier +
|
||||||
|
":" +
|
||||||
|
verificationToken.token
|
||||||
|
|
||||||
const token = await client.get<VerificationToken>(tokenKey)
|
const token = await client.get<VerificationToken>(tokenKey)
|
||||||
if (!token) return null
|
if (!token) return null
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "next-auth",
|
"name": "next-auth",
|
||||||
"version": "4.11.0",
|
"version": "4.12.0",
|
||||||
"description": "Authentication for Next.js",
|
"description": "Authentication for Next.js",
|
||||||
"homepage": "https://next-auth.js.org",
|
"homepage": "https://next-auth.js.org",
|
||||||
"repository": "https://github.com/nextauthjs/next-auth.git",
|
"repository": "https://github.com/nextauthjs/next-auth.git",
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
"@babel/runtime": "^7.16.3",
|
"@babel/runtime": "^7.16.3",
|
||||||
"@panva/hkdf": "^1.0.1",
|
"@panva/hkdf": "^1.0.1",
|
||||||
"cookie": "^0.5.0",
|
"cookie": "^0.5.0",
|
||||||
"jose": "^4.3.7",
|
"jose": "^4.9.3",
|
||||||
"oauth": "^0.9.15",
|
"oauth": "^0.9.15",
|
||||||
"openid-client": "^5.1.0",
|
"openid-client": "^5.1.0",
|
||||||
"preact": "^10.6.3",
|
"preact": "^10.6.3",
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { randomBytes, randomUUID } from "crypto"
|
||||||
import { NextAuthOptions } from ".."
|
import { NextAuthOptions } from ".."
|
||||||
import logger from "../utils/logger"
|
import logger from "../utils/logger"
|
||||||
import parseUrl from "../utils/parse-url"
|
import parseUrl from "../utils/parse-url"
|
||||||
@@ -86,6 +87,10 @@ export async function init({
|
|||||||
strategy: userOptions.adapter ? "database" : "jwt",
|
strategy: userOptions.adapter ? "database" : "jwt",
|
||||||
maxAge,
|
maxAge,
|
||||||
updateAge: 24 * 60 * 60,
|
updateAge: 24 * 60 * 60,
|
||||||
|
generateSessionToken: () => {
|
||||||
|
// Use `randomUUID` if available. (Node 15.6+)
|
||||||
|
return randomUUID?.() ?? randomBytes(32).toString("hex")
|
||||||
|
},
|
||||||
...userOptions.session,
|
...userOptions.session,
|
||||||
},
|
},
|
||||||
// JWT options
|
// JWT options
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
import { randomBytes, randomUUID } from "crypto"
|
|
||||||
import { AccountNotLinkedError } from "../errors"
|
import { AccountNotLinkedError } from "../errors"
|
||||||
import { fromDate } from "./utils"
|
import { fromDate } from "./utils"
|
||||||
|
|
||||||
@@ -37,7 +36,7 @@ export default async function callbackHandler(params: {
|
|||||||
adapter,
|
adapter,
|
||||||
jwt,
|
jwt,
|
||||||
events,
|
events,
|
||||||
session: { strategy: sessionStrategy },
|
session: { strategy: sessionStrategy, generateSessionToken },
|
||||||
} = options
|
} = options
|
||||||
|
|
||||||
// If no adapter is configured then we don't have a database and cannot
|
// If no adapter is configured then we don't have a database and cannot
|
||||||
@@ -219,8 +218,3 @@ export default async function callbackHandler(params: {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function generateSessionToken() {
|
|
||||||
// Use `randomUUID` if available. (Node 15.6++)
|
|
||||||
return randomUUID?.() ?? randomBytes(32).toString("hex")
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -468,6 +468,13 @@ export interface SessionOptions {
|
|||||||
* @default 86400 // 1 day
|
* @default 86400 // 1 day
|
||||||
*/
|
*/
|
||||||
updateAge: number
|
updateAge: number
|
||||||
|
/**
|
||||||
|
* Generate a custom session token for database-based sessions.
|
||||||
|
* By default, a random UUID or string is generated depending on the Node.js version.
|
||||||
|
* However, you can specify your own custom string (such as CUID) to be used.
|
||||||
|
* @default `randomUUID` or `randomBytes.toHex` depending on the Node.js version
|
||||||
|
*/
|
||||||
|
generateSessionToken: () => string
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface DefaultUser {
|
export interface DefaultUser {
|
||||||
|
|||||||
10
pnpm-lock.yaml
generated
10
pnpm-lock.yaml
generated
@@ -433,7 +433,7 @@ importers:
|
|||||||
jest: ^28.1.1
|
jest: ^28.1.1
|
||||||
jest-environment-jsdom: ^28.1.1
|
jest-environment-jsdom: ^28.1.1
|
||||||
jest-watch-typeahead: ^1.1.0
|
jest-watch-typeahead: ^1.1.0
|
||||||
jose: ^4.3.7
|
jose: ^4.9.3
|
||||||
msw: ^0.42.3
|
msw: ^0.42.3
|
||||||
next: 12.2.5
|
next: 12.2.5
|
||||||
oauth: ^0.9.15
|
oauth: ^0.9.15
|
||||||
@@ -451,7 +451,7 @@ importers:
|
|||||||
'@babel/runtime': 7.18.3
|
'@babel/runtime': 7.18.3
|
||||||
'@panva/hkdf': 1.0.2
|
'@panva/hkdf': 1.0.2
|
||||||
cookie: 0.5.0
|
cookie: 0.5.0
|
||||||
jose: 4.8.1
|
jose: 4.9.3
|
||||||
oauth: 0.9.15
|
oauth: 0.9.15
|
||||||
openid-client: 5.1.6
|
openid-client: 5.1.6
|
||||||
preact: 10.8.2
|
preact: 10.8.2
|
||||||
@@ -15426,8 +15426,8 @@ packages:
|
|||||||
valid-url: 1.0.9
|
valid-url: 1.0.9
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/jose/4.8.1:
|
/jose/4.9.3:
|
||||||
resolution: {integrity: sha512-+/hpTbRcCw9YC0TOfN1W47pej4a9lRmltdOVdRLz5FP5UvUq3CenhXjQK7u/8NdMIIShMXYAh9VLPhc7TjhvFw==}
|
resolution: {integrity: sha512-f8E/z+T3Q0kA9txzH2DKvH/ds2uggcw0m3vVPSB9HrSkrQ7mojjifvS7aR8cw+lQl2Fcmx9npwaHpM/M3GD8UQ==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/js-beautify/1.14.4:
|
/js-beautify/1.14.4:
|
||||||
@@ -17339,7 +17339,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-HTFaXWdUHvLFw4GaEMgC0jXYBgpjgzQQNHW1pZsSqJorSgrXzxJ+4u/LWCGaClDEse5HLjXRV+zU5Bn3OefiZw==}
|
resolution: {integrity: sha512-HTFaXWdUHvLFw4GaEMgC0jXYBgpjgzQQNHW1pZsSqJorSgrXzxJ+4u/LWCGaClDEse5HLjXRV+zU5Bn3OefiZw==}
|
||||||
engines: {node: ^12.19.0 || ^14.15.0 || ^16.13.0}
|
engines: {node: ^12.19.0 || ^14.15.0 || ^16.13.0}
|
||||||
dependencies:
|
dependencies:
|
||||||
jose: 4.8.1
|
jose: 4.9.3
|
||||||
lru-cache: 6.0.0
|
lru-cache: 6.0.0
|
||||||
object-hash: 2.2.0
|
object-hash: 2.2.0
|
||||||
oidc-token-hash: 5.0.1
|
oidc-token-hash: 5.0.1
|
||||||
|
|||||||
Reference in New Issue
Block a user