strapi在登录时调用api/auth/local获取token接口一直报401、403、400错误的问题解决

strapi`在调用`api/auth/local`登录接口时,一直报`403 forbidden` 或 `401 (Unauthorized) error`问题该如何解决

问题描述

strapi在调用api/auth/local登录接口时,一直报403 forbidden401 (Unauthorized) error问题。

这个接口的作用其实就是使用用户名、密码登录,来获得token,以便获取需要Authenticated的接口数据。

401问题

这个问题来得很突然,是我在升级了strapi版本后产生的,我一度以为是框架升级过程中变更了什么配置导致。

而且不管我是用user下的普通用户登录还是管理员用户登录都是这个问题。

解决403 forbidden问题

这个问题的本质原因是,调用api/auth/local登录接口,因为它是登录接口,是要用来获取token的,所以本身不需要token,即不需要Authenticated里的权限,那就是需要public权限了。让它开放给所有用户使用。所以,确保,你在设置-用户及角色权限-public-Users-permissions下的callback权限已经勾选。

在public下勾选如下权限

它对应的接口即为:

对应的接口

解决401 (Unauthorized) error问题

如果是其他需要认证的接口报这个问题,那么肯定是你的token已经过期,这时重新调用api/auth/local登录接口获取新的token即可。

如果是在调用api/auth/local登录接口,也报这个错,那么很有可能你在该接口上使用了token,请注意,它是不需要token的。

如果你是在postman调试遇到了这个问题,那么很有可能是你勾选了这个继承父级的token的选项,将其去掉即可:

解决401 (Unauthorized) error问题

调用认证接口需用注意的事项

strapi中有两种用户,一种是管理员,另外一种是普通登录用户。

所以,我们在API请求认证用户时,要填写的用户名,密码均是普通用户的,即下图内容管理器下的User用户,而非管理员用户,管理员只能登录网站后台。

使用user用户下来登录

如果你用管理员账号调用api/auth/local登录接口,就会报400 Bad Request错误,会提示你用户名或密码不对。

我正在使用strapi开发uniapp微信小程序vue,如果你在使用strapi时,遇到了问题,请看下方信息,联系我。

除特别声明外, 本站所有内容皆为原创,未经许可,禁止转载。转载时请务必以超链接形式标明文章出处和作者信息
  • 1,356
(0)
打赏 微信扫一扫 微信扫一扫
                       

关于作者:

web前端老罗

贡献:已经在WEB前端圈发表90篇文章了

简介:前端老罗是一位拥有多年web前端开发经验、管理经验、教学经验的实战派全栈工程师。目前在某名企任职WEB前端技术教官。加我微信:imqdcnn可提供开发、技术咨询、答疑、直播讲座等服务

Ta的专栏 | Ta的站点 | 其他SNS

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关于WEB前端圈

我是前端人(imqd.cn)愿景是不管你是想学习前端还是一名专业的WEB前端工程师在这里都能找到你想要的物料。定位为前端人学习进步的一个平台。在这里你能找到前端学习笔记、教学视频资源、案例、前后端分离、前端框架、低代码平台、可视化数据、多端开发、全栈开发等跟前端有关的一切资源!

关于站长:WEB前端老罗(罗老师)是一位拥有多年web前端开发经验、管理经验、IT培训教学经验的实战派全栈工程师。目前在某名企任职WEB前端技术教官。右边加我微信可提供开发、技术咨询、答疑、直播讲座等服务

WEB前端圈二维码

右边添加老罗微信一对一免费私聊
拉你加入官方微信答疑群

To top