我正在尝试通过经过身份验证的用户(JWT)执行Appwrite功能。我做什么:
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"
}'
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。
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功能设置中,我将“执行访问”设置为“用户”: 所以我认为我应该能够以用户身份执行该函数。
如果我将“执行访问”更改为“任何”或“访客”,则它可以正常工作,函数返回正确的结果,因此请求和参数都很好。我做错了什么,我无法以用户身份执行此功能?