我正在尝试查看用户是否登录到当前的网络浏览器,所以我想检查带有 id 的用户令牌,以便 chrome 扩展程序开始工作。
$.ajax({
url: "https://factstart.herokuapp.com/api",
type: 'GET',
// headers: { 'Content-Type': 'application/json'},
// Fetch the stored token from localStorage and set in the header
headers: {
"Authorization": localStorage.getItem('data'),
'Content-Type': 'application/json'
},
success: function(token) {
var data = jQuery.parseJSON(token);
console.log(data);
var id = data.id;
},
});
所以我使用 laravel 包频谱在 chrome dev 中生成 web 令牌,它可以找到 get token 和 id
但是当我在实际站点中运行时,它会抛出VM9360:1 Uncaught SyntaxError: Unexpected token < in JSON at position 0这个错误并且它是一个未记录的页面,那么如何克服这个问题呢?
这是访问令牌的 PHP 代码
public function token(Request $request) {
if (Auth::user()) {
$data = array();
// $user = request()->user();
$data['id'] = request()->user()->id;
$data['token'] = request()->user()->tokens()->where('tokenable_id', $data['id'])->get('token')
->first()->token;
return json_encode((array) $data);
} else {
return "Login to get data";
}
}
// 为了清楚起见,添加了额外的细节
当我像在扩展中刷新一样运行代码时,令牌会获得身份验证。同时,当我在 Web 选项卡中刷新时,它会将我带到登录屏幕。还有我在content.js中写的js代码。因此,我将首先检查用户是否已登录,然后 chrome 扩展程序应该开始工作。