You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Sanctum场景下如何将meta存储的用户信息转JSON供Vue全局组件调用

你存到meta标签里的用户信息本质是JSON格式的字符串,直接读取后没有做反序列化,所以无法直接读取属性,按以下步骤修改即可:

1. 调整Laravel端的meta标签输出

为了避免JSON里的特殊字符和HTML属性引号冲突,输出时用json_encode加安全转义参数,代码替换为:

<meta name="user" content="{{ json_encode(Auth::guard('sanctum')->user(), JSON_HEX_QUOT | JSON_HEX_APOS) }}">

2. 调整Vue全局挂载逻辑

读取到meta内容后用JSON.parse转成原生JS对象再挂载:

Vue.prototype.$user = JSON.parse(document.querySelector("meta[name='user']").getAttribute('content'));

注意事项

  • 未登录状态下Auth::guard('sanctum')->user()会返回null,转成JS后也是null,调用属性前建议加可选链判断this.$user?.id,避免空值报错。
  • 如果你使用的是Vue3,全局挂载的语法需要调整为:
app.config.globalProperties.$user = JSON.parse(document.querySelector("meta[name='user']").getAttribute('content'));

内容的提问来源于stack exchange,提问作者K. Loeke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 11:06:03