Iam stuck with this, in nextjs 14 with ssr. When one user is invited, send email invitation delivered ok, this verification go to public route /verify, with form to change password and update membership, but click to send buton, with admin client (with api key) return (role: applications) missing scope (public).
My Create Admin Client
export async function createAdminClient(secret?: string) {
const client = new Client()
.setEndpoint(process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT as string)
.setProject(process.env.NEXT_PUBLIC_APPWRITE_PROJECT as string)
.setKey(process.env.NEXT_APPWRITE_KEY as string);
if (secret) {
client.setSession(secret);
}
return {
get account() {
return new Account(client);
},
get ID() {
return ID;
},
get db() {
return new Databases(client);
},
get users() {
return new Users(client);
},
get client() {
return client;
},
get team() {
return new Teams(client);
},
};
}
My server action
'use server';
async function resetPasswordAction(formData: FormData) {
const { team, account: adminAccount } = await createAdminClient();
try {
const formObj = Object.fromEntries(formData.entries());
const resetPasswordData = resetPasswordSchema.safeParse(formObj);
if (resetPasswordData.error) {
console.error(resetPasswordData.error);
throw new Error(
'Error al validar los datos de entrada, intenta nuevamente.'
);
}
// For invitation to team
if (
resetPasswordData.data?.membershipId &&
resetPasswordData.data?.teamId &&
resetPasswordData.data?.userId &&
resetPasswordData.data?.secret
) {
const membershipUpdate = await team.updateMembershipStatus(
resetPasswordData.data.teamId,
resetPasswordData.data.membershipId,
resetPasswordData.data.userId,
resetPasswordData.data.secret
);
FYI, it's best to wrap code in backticks to format a bit nicer. You can use 1 backtick for inline code (https://www.markdownguide.org/basic-syntax/#code) and 3 backticks for multiline code (https://www.markdownguide.org/extended-syntax/#syntax-highlighting).
team.updateMembershipStatus()
is meant to be executed without any session or API key. You can't use the admin client to make that call
Recommended threads
- Project in AppWrite Cloud doesn't allow ...
I have a collection where the data can't be opened. When I check the functions, there are three instances of a function still running that can't be deleted. The...
- Get team fail in appwrite function
I try to get team of a user inside appwrite function, but i get this error: `AppwriteException: User (role: guests) missing scope (teams.read)` If i try on cl...
- Deploy function not working - 503
Hellon i get this error message, when i try to deploy a new version of a function <html><body><h1>503 Service Unavailable</h1>No server is available to handle...