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
- Compatibility issue with Kakao OpenID Co...
**Context:** I am attempting to integrate **Kakao Login** (one of the largest social login providers in South Korea) into my Flutter application using Appwrite'...
- Framework categorization for Sites
Hello, I want to deploy my web app via Appwrite SItes. My web app is vite+reactjs. In the Appwrite docs, it creates a vite+react app, and chooses React from the...
- [SOLVED] Appwrite 25.1.0 returns Invalid...
I've already opened an issue on GitHub, but somewhat it doesn't seem like GitHub is monitored very closely, so I'm leaving a bug report here on Discord as well....