metamigo: do nextauth v3 -> v4 upgrades
This commit is contained in:
parent
a33f80c497
commit
45f8cb1234
13 changed files with 158 additions and 123 deletions
|
|
@ -13,7 +13,7 @@ const minimumProfileSchema = Joi.object()
|
|||
|
||||
const minimumUserSchema = Joi.object()
|
||||
.keys({
|
||||
id: Joi.string().required(),
|
||||
userId: Joi.string().required(),
|
||||
email: Joi.string().email().required(),
|
||||
})
|
||||
.unknown(true);
|
||||
|
|
|
|||
|
|
@ -93,13 +93,13 @@ export const register = async <TUser, TProfile>(
|
|||
},
|
||||
{
|
||||
method: "GET",
|
||||
path: `${basePath}/getUserByProviderAccountId/{providerId}/{providerAccountId}`,
|
||||
path: `${basePath}/getUserByAccount/{provider}/{providerAccountId}`,
|
||||
options: {
|
||||
auth,
|
||||
tags,
|
||||
validate: {
|
||||
params: {
|
||||
providerId: Joi.string(),
|
||||
provider: Joi.string(),
|
||||
providerAccountId: Joi.string(),
|
||||
},
|
||||
},
|
||||
|
|
@ -107,10 +107,10 @@ export const register = async <TUser, TProfile>(
|
|||
request: Hapi.Request,
|
||||
h: ResponseToolkit
|
||||
): Promise<ResponseObject> {
|
||||
const { providerId, providerAccountId } = request.params;
|
||||
const { provider, providerAccountId } = request.params;
|
||||
const r = await opts
|
||||
.nextAuthAdapterFactory(request)
|
||||
.getUserByProviderAccountId(providerId, providerAccountId);
|
||||
.getUserByAccount(provider, providerAccountId);
|
||||
if (!r) return h.response().code(404);
|
||||
return h.response(r as object);
|
||||
},
|
||||
|
|
@ -148,14 +148,15 @@ export const register = async <TUser, TProfile>(
|
|||
tags,
|
||||
validate: {
|
||||
payload: Joi.object({
|
||||
userId,
|
||||
providerId: Joi.string(),
|
||||
providerType: Joi.string(),
|
||||
providerAccountId: Joi.string(),
|
||||
refreshToken: Joi.string().optional().allow(null),
|
||||
accessToken: Joi.string().optional().allow(null),
|
||||
accessTokenExpires: Joi.number().optional().allow(null),
|
||||
}).options({ presence: "required" }),
|
||||
// https://next-auth.js.org/getting-started/upgrade-v4#schema-changes
|
||||
userId: Joi.string().required(),
|
||||
provider: Joi.string().required(),
|
||||
type: Joi.string().required(),
|
||||
providerAccountId: Joi.string().required(),
|
||||
refresh_token: Joi.string().optional().allow(null),
|
||||
access_token: Joi.string().optional().allow(null),
|
||||
expires_at: Joi.number().optional().allow(null),
|
||||
}).unknown(true),
|
||||
},
|
||||
async handler(
|
||||
request: Hapi.Request,
|
||||
|
|
@ -193,7 +194,11 @@ export const register = async <TUser, TProfile>(
|
|||
auth,
|
||||
tags,
|
||||
validate: {
|
||||
payload: user,
|
||||
payload: Joi.object({
|
||||
userId: Joi.string().required(),
|
||||
sessionToken: Joi.string().required(),
|
||||
expires: Joi.string().isoDate().required(),
|
||||
}),
|
||||
},
|
||||
async handler(
|
||||
request: Hapi.Request,
|
||||
|
|
@ -210,7 +215,7 @@ export const register = async <TUser, TProfile>(
|
|||
},
|
||||
{
|
||||
method: "GET",
|
||||
path: `${basePath}/getSession/{sessionToken}`,
|
||||
path: `${basePath}/getSessionAndUser/{sessionToken}`,
|
||||
options: {
|
||||
auth,
|
||||
tags,
|
||||
|
|
@ -226,7 +231,7 @@ export const register = async <TUser, TProfile>(
|
|||
const token = request.params.sessionToken;
|
||||
const r = await opts
|
||||
.nextAuthAdapterFactory(request)
|
||||
.getSession(token);
|
||||
.getSessionAndUser(token);
|
||||
if (!r) return h.response().code(404);
|
||||
return h.response(r as object);
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue