上下文:
我需要在我的网站上创建一个页面,它是一个 SPA,基本上是一个用户插入其社交号码的投票页面,当点击开始按钮时,我需要登录我为投票创建的用户,使用Sanctum,并获取下一个 Ajax 请求的令牌。
问题:
验证社会号和返回令牌功能:
public function verifyNIF(Request $request){
$nif = $request->nif;
$slug = $request->slug;
//TODO:validates NIF in DB
$user = CbsHelpers::getInPersonUser();
$token = $user->createToken('in-person-token')->plainTextToken;
return response()->json([
'user' => $user,
'token' => $token,
]);
}
Ajax 请求在 Authorization 标头中带有令牌(返回 401 Unauthorized)
function voteInPerson(topic){
let topicId = topic.data('topic-id');
$.ajax({
url: "/vote",
type: "POST",
headers: {
Authorization: 'Bearer '+token
},
data: {
slug: slug,
topicId: topicId,
},
success: function (data) {
if (data === "no available votes" && topic.hasClass("not-voted")) {
showWarningModal(data);
}
else {
changeTopicVote(topic, data);
}
},
error: function (data) {
if (data.status === 401)
showWarningModal("login needed");
}
});
}
答案 0 :(得分:0)
问题是路由被设置为中间件('auth')而不是'auth:sanctum'