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

文章目录

    • 问题描述
    • 解决403 forbidden问题
    • 解决401 (Unauthorized) error问题
    • 调用认证接口需用注意的事项,解决400问题

问题描述

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

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

【strapi系列】strapi在登录时调用api/auth/local获取token接口一直报401、403、400错误的问题解决_第1张图片

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

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

解决403 forbidden问题

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

【strapi系列】strapi在登录时调用api/auth/local获取token接口一直报401、403、400错误的问题解决_第2张图片

它对应的接口即为:

【strapi系列】strapi在登录时调用api/auth/local获取token接口一直报401、403、400错误的问题解决_第3张图片

解决401 (Unauthorized) error问题

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

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

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

【strapi系列】strapi在登录时调用api/auth/local获取token接口一直报401、403、400错误的问题解决_第4张图片

调用认证接口需用注意的事项,解决400问题

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

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

【strapi系列】strapi在登录时调用api/auth/local获取token接口一直报401、403、400错误的问题解决_第5张图片

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

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

如果你在web前端开发、面试、前端学习路线有困难可以加我V:imqdcnn。免费答疑,行业深潜多年的技术牛人帮你解决bug。

祝你能成为一名优秀的WEB前端开发工程师!

你可能感兴趣的:(strapi,开发语言,strapi,headless,无头CMS,postman)