
I have implemented an email verification feature using Appwrite, but the verification process fails when the user clicks the email link. Here's what I'm working with:
Dart Code (Send Verification Email)
Future<void> sendEmailAndPasswordVerificationLink(String userId, String secret) async {
final token = await account.createVerification(url: 'http://67004d383faf2a735120.appwrite.global');
print(token.toMap());
}
Appwrite Cloud Function
import { Client, Users, Account } from 'node-appwrite';
export default async ({ req, res, log, error }) => {
const client = new Client()
.setEndpoint(process.env.APPWRITE_FUNCTION_API_ENDPOINT)
.setProject(process.env.APPWRITE_FUNCTION_PROJECT_ID)
.setKey(req.headers['x-appwrite-key'] ?? '');
const account = new Account(client);
const user = new Users(client);
try {
const { userId, secret } = req.query;
if (!userId || !secret) {
throw new Error('Missing userId or secret in query parameters');
}
const response = await account.updateVerification(userId, secret);
log(req.query);
return res.json({
success: true,
message: 'User verification successful',
data: response,
});
} catch (err) {
log(req.query);
return res.json({
success: false,
message: 'User verification failed',
error: err.message,
});
}
};
Problem:
I am successfully receiving the email, but when I click the verification link, the following error occurs:
{
"success": false,
"message": "User verification failed",
"error": "app.66f7536e00244af68e02@service.cloud.appwrite.io (role: applications) missing scope (public)"
}
It seems like there is a missing scope or permission issue, but I'm unsure how to resolve this. Could someone help me understand what this error means and how I can fix it?
Recommended threads
- 503 Timeout when Updating or Upserting D...
Hey I’m running into an issue when trying to update or upsert a row in Appwrite. The request hangs for a while and then throws this error: ``` AppwriteException...
- Hola equipo de soporte,
Hola equipo de soporte, Estoy desarrollando una Function en Appwrite Cloud con Node.js 22 y el siguiente package.json: { "name": "upload-whitelist", "type"...
- Sites 30MB limit from GitHub
I’m deploying a site from github as Other type on the Hobby plan. It is actually a Flutter web app but it’s in a subdirectory with the root being an html landin...
