Rank 1: Thread
Hello,
I can create a valid session for a user account, but I cannot create a valid JWT token for the session...
Here's some sample code that illustrates the "problem":
import { Client, Account } from "appwrite";
const appwriteHost = "http://localhost:8123/v1";const appwriteProjectId = "<projectID>";
const accountEmail = "someone@example.org";const accountPassword = "password";
try { const client = new Client() .setEndpoint(appwriteHost) .setProject(appwriteProjectId); const account = new Account(client);
const sessionResponse = await account.createEmailSession( accountEmail, accountPassword ); console.log(sessionResponse); // <- So far so good, a valid session is created const jwtResponse = await account.createJWT(); // <- Fails, no way to link to the active session? (without eg cookies) console.log(jwtResponse);
} catch (error) { console.error(error);}The output (in my case) is similar to the following:
{ '$id': '1234567890', '$createdAt': '2023-04-03T13:21:10.814+00:00', userId: 'someone', expire: '2024-04-02 13:21:10.616', provider: 'email', providerUid: 'someone@example.org', providerAccessToken: '', providerAccessTokenExpiry: '', providerRefreshToken: '', ip: 'xxx.xxx.xxx.xxx', osCode: '', osName: '', osVersion: '', clientType: 'library', clientCode: '', clientName: 'Node Fetch', clientVersion: '1.0', clientEngine: '', clientEngineVersion: '', deviceName: '', deviceBrand: '', deviceModel: '', countryCode: '--', countryName: 'Unknown', current: true}AppwriteException: User (role: guests) missing scope (account) at Client.<anonymous> (file:///path/to/source/node_modules/appwrite/dist/esm/sdk.js:385:27) ... code: 401, type: 'general_unauthorized_scope', response: { message: 'User (role: guests) missing scope (account)', code: 401, type: 'general_unauthorized_scope', version: '1.2.1' }}