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

如何在React组件中访问Laravel环境变量配置API密钥?

如何在React Axios组件中使用Laravel环境变量作为API密钥

核心思路

Laravel的.env文件变量无法直接被前端JS读取,必须通过Blade视图将变量注入到全局window对象中,再在React组件里调用。

步骤1:在Blade视图中注入环境变量

找到加载React组件的Blade模板(比如resources/views/react-app.blade.php),在页面头部添加脚本,把.env中的API密钥暴露给前端:

<script>
    window.AppSettings = {
        apiToken: "{{ env('API_TOKEN') }}"
    };
</script>

确保你的.env文件中已定义API_TOKEN=你的实际密钥,生产环境下记得执行php artisan config:cache刷新配置缓存。

步骤2:修改http.js读取全局变量

将http.js中硬编码的Bearer令牌替换为全局变量:

import axios from "axios"

export default axios.create({
    baseURL: window.location.origin + "/api/",
    headers: {
        "Content-type": "application/octet-stream",
        "Authorization": `Bearer ${window.AppSettings.apiToken}`
    },
})

可选:用户动态令牌场景(比如登录后获取)

如果你的API令牌是用户登录后生成的(如Sanctum/Passport令牌),可以将令牌存储在localStorage中,再在http.js中读取:

// 登录成功时保存令牌
localStorage.setItem('user_api_token', response.data.access_token);

// http.js中读取令牌
const authToken = localStorage.getItem('user_api_token');
export default axios.create({
    baseURL: window.location.origin + "/api/",
    headers: {
        "Content-type": "application/octet-stream",
        "Authorization": authToken ? `Bearer ${authToken}` : ''
    },
})

内容的提问来源于stack exchange,提问作者Aizaz Afridi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 09:42:58