Appwrite JWT 身份验证

问题描述 投票:0回答:1

我正在尝试通过经过身份验证的用户(JWT)执行Appwrite功能。我做什么:

  1. 我创建电子邮件会话
curl --location 'http://localhost/v1/account/sessions/email' \
--header 'Content-Type: application/json' \
--header 'X-Appwrite-Project: my_project_id' \
--data-raw '{
  "email": "email",
  "password": "password"
}'
  1. 由于第 1 点中的请求,我得到了
    Set-Cookie
    标头。我用它来获取 JWT 令牌:
curl --location --request POST 'http://localhost/v1/account/jwt' \ --header 'Content-Type: application/json' \ --header 'X-Appwrite-Response-Format: 1.4.0' \ --header 'X-Appwrite-Project: my_project_id' \ --header 'Cookie: here I place the Set-Cookie value'

我得到了正确的令牌(具有正确的用户 ID 和会话 ID。

  1. 然后我尝试执行我的函数:
curl --location 'http://myFunctionUrl/' \
--header 'Content-Type: application/json' \
--header 'X-Appwrite-Project: my_project_id' \
--header 'X-Appwrite-JWT: my_jwt_token' \
--header 'X-Appwrite-Response-Format: 1.4.0' \
--data 'some_parameters'

结果我收到错误 400,并显示以下消息:

Execution error: Missing "execute" permission for role "users". Only ["any","guests"] scopes are allowed and ["users"] was given.

在Appwrite功能设置中,我将“执行访问”设置为“用户”: Appwrite function 所以我认为我应该能够以用户身份执行该函数。

如果我将“执行访问”更改为“任何”或“访客”,则它可以正常工作,函数返回正确的结果,因此请求和参数都很好。我做错了什么,我无法以用户身份执行此功能?

authentication jwt appwrite
1个回答
0
投票

向您的函数添加正确的权限(针对用户)后,您可能需要从 Appwrite 控制台重新部署该函数一次。

请尝试同样的操作,如果问题仍然存在,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.