Back

how to generate jwt after authentication

  • 0
  • Self Hosted
  • Web
Alex Bourg
26 Dec, 2024, 01:12
TypeScript

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

TypeScript
Error: User (role: guests) missing scope (account)
Error: Failed to authenticate or create JWT.
TL;DR
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.
Reply

Reply to this thread by joining our Discord

Reply on Discord

Need support?

Join our Discord

Get community support by joining our Discord server.

Join Discord

Get premium support

Join Appwrite Pro and get email support from our team.

Learn more