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
- Sudden CORS Errors - Domain hasn't Chang...
I have an Appwrite project with two web apps configured, the first one has the hostname `*` and the second one I just added to test if it could fix the issue wi...
- Any way to temporarily bypass the email ...
Hey guys, any way to bypass the email verification to use the accounts again? i need to recover some projects that due to recent changes have been stopped, and ...
- Create a new paid tier
Current pricing seems reasonable enough about what is someone getting for 25$. But for some people most of these resouces are getting wasted. Like the bandwidt...