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
- TEAM INVITE
There is a problem with the team invitation. When a user invites other users, that time, the newly created email address they don't get the invite link and old ...
- education plan not activated
Hi I have an edu id 13103046@iubat.edu but when I am trying to claim my plan and trying to logging with github where education student plan active. the appwrite...
- 500 simultaneous OAuth logins from the s...
Hi, I'd like to ask about rate limiting around Google OAuth login on Appwrite Cloud. **OVERVIEW** Service type: A PWA (web app) for members of a university clu...