Alex BourgOriginal post
Rank 2: Process
JavaScript
const { Client, Account } = require('appwrite');
const client = new Client();client .setEndpoint('xxxxxxxxxxxxxxxxxxxxx') .setProject('xxxxxxxxxxxxxxxxx');
const authenticateAndGenerateJWT = async (email, password) => { try { const account = new Account(client);
// Step 1: Authenticate the user and create a session const session = await account.createEmailPasswordSession(email, password); console.log('Session created successfully:', session);
// Step 2: Set the session token for subsequent requests client.setSession(session); // Use the session ID as the token
// Step 3: Generate JWT const jwt = await account.createJWT(); console.log('JWT created successfully:', jwt.jwt);
return jwt.jwt; // Return the generated JWT } catch (error) { console.error('Error:', error.message); throw new Error('Failed to authenticate or create JWT.'); }};error
Error: User (role: guests) missing scope (account)
Error: Failed to authenticate or create JWT.
Summary
To generate a JWT after authentication, developers should ensure the user has the necessary scope. In this case, the error 'User (role: guests) missing scope (account)' indicates a lack of permissions. Make sure the guest role has the 'account' scope enabled in the Appwrite console.