需要使用Appwrite SDK在Node.js中进行JWT验证的指导

6za6bjd0  于 12个月前  发布在  Node.js
关注(0)|答案(1)|浏览(141)

使用Appwrite SDK在Node.js后端寻求JWT验证的帮助。目前正在设计我们的后端,成功地在Flutter客户端实现了JWT创建。然而,在Node.js服务器上面临JWT验证的挑战,特别是在创建新帖子时。
目前,我们的帖子创建方法看起来像这样:

const { config, attrs, enums } = require('./config');
const sdk = require("node-appwrite");
const client = new sdk.Client();

client.setEndpoint(config.endpoint);
client.setProject(config.projectId);
client.setKey(config.key);

const databases = new sdk.Databases(client);

const createPost = async (newPost) => {
    return await databases.createDocument(config.databaseId, config.collectionPostsId, sdk.ID.unique(), newPost);
}

字符串
现在,我们想在JWT Post方法中包含JWT验证:

const createPost = async (token, newPost) => {
    // Validate the token with the SDK method here
    // ...

    return await databases.createDocument(config.databaseId, config.collectionPostsId, sdk.ID.unique(), newPost);
}


在我们的研究中,我们发现了关于JWT的Appwrite文档。然而,我们很难理解如何在我们的特定场景中使用令牌验证用户。文档显示了在Appwrite Client对象上设置JWT:

const { Client } = require('node-appwrite');

const client = new Client()
    .setEndpoint('https://cloud.appwrite.io/v1') // Your API Endpoint
    .setProject('<PROJECT_ID>') // Your project ID
    .setJWT('eyJJ9.eyJ...886ca'); // Your secret JSON Web Token


我们的困惑在于,像JWT这样的用户特定信息是在应用程序特定的对象(客户端)上设置的。我们希望获得有关如何在我们的场景中使用令牌正确验证用户的指导:

const createPost = async (token, newPost) => {
    // Validate the token with the SDK method here
    // ...

    return await databases.createDocument(config.databaseId, config.collectionPostsId, sdk.ID.unique(), newPost);
}


我们感谢任何见解或代码示例,可以帮助我们更好地理解和使用Appwrite SDK在Node.js后端实现JWT验证。
提前感谢您的帮助!

lyfkaqu1

lyfkaqu11#

使用account.get()方法。
createPost函数中,您需要一个Account对象(const account = new Account(client),其中client是您调用setJWT()Client示例)。
调用account.get()将抛出一个异常,如果JWT由于任何原因无效。如果JWT * 是 * 有效的,它将返回一个user对象。

相关问题