Drupal 8 API REST登录可在curl上运行,但不能用于邮递员

 2021-04-27 

Drupal 8 API REST login works on curl but not postman

Drupal的REST API有一个奇怪的问题,我无法解决。

与/ user / login?_format = json完全相同的POST在邮递员中不起作用(错误403,被禁止),但是具有相同的参数,它在CURL中可以正常工作。

此卷毛有效:
curl --header "内容类型:application / json " --request POST --data \\'{" name ":" bobo "," pass ":" xxx "} \\ 'http:// [domain] / user / login?_format = json

我用uid,名称,csrf令牌,注销令牌和任何角色返回json。

现在在Postman中,我选择Post,我的URL为" http:// [domain] / user / login?_format = json "作为标题,我选择\\'Content-Type \\'并值为\\'application / json ",然后将{" name ":" bobo "," pass ":" xxx "}部分粘贴到主体下的\\'raw \\'中。

现在我得到了403禁止访问并回复:{" message ":"}

我是否缺少邮递员中的设置?或者这是某个地方的错误?对我来说似乎很奇怪。


实际上,这是正确的。

应该注销用户以访问/user/login端点(检查user.routing.yml)。与curl不同,Postman的行为类似于浏览器,即保存所有会话cookie,因此您只是在首次呼叫后登录,无法再访问登录端点。您可以在登录后调用/user/logout以便再次调用。

因此,我认为您的代码可以正常工作:)