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

Laravel Passport+React Native本地多租户登录请求失败求助

解决React Native请求多租户Laravel Passport接口失败问题

核心问题分析

  • React Native中localhost指向模拟器/设备自身的本地服务,而非你的开发电脑,导致请求无法到达Laravel后端。
  • 直接使用电脑IPv4地址时,TenancyForLaravel无法通过域名识别租户,因此路由到主租户(landlord)。

解决方案

1. 用Wildcard DNS服务映射租户域名到电脑IP

无需修改hosts文件,利用免费Wildcard DNS服务(如nip.io)将租户域名解析到你的电脑IPv4:

  • 把租户域名从tenant1.localhost改为tenant1.192.162.3.1.nip.io(替换192.162.3.1为你的电脑实际IPv4)
  • 在Laravel后台更新租户的关联域名,确保TenancyForLaravel能通过该域名识别租户
  • 修改React Native的请求URL:
    const response = await fetch('http://tenant1.192.162.3.1.nip.io:8000/oauth/token', {
      // ... 请求配置
    });
    

2. 配置设备/模拟器的Hosts文件(备选方案)

如果不想用Wildcard DNS,可手动配置Hosts让租户域名指向电脑IP:

  • iOS模拟器:修改Mac的/etc/hosts文件,添加一行:
    192.162.3.1 tenant1.localhost
    
    保存后刷新DNS:sudo dscacheutil -flushcache
  • Android模拟器:
    1. 打开模拟器,执行adb root获取权限
    2. 推送修改后的hosts文件到模拟器:adb push /path/to/your/hosts /system/etc/hosts
    3. 重启模拟器
  • 物理设备:需连接到与电脑同一局域网,通过第三方代理工具(如Charles)映射域名,或越狱/root后修改设备Hosts

3. 调整Laravel CORS配置

确保CORS允许React Native应用的来源:

  • 编辑config/cors.php:
    return [
        'paths' => ['oauth/*', 'api/*'],
        'allowed_methods' => ['*'],
        'allowed_origins' => ['*', 'exp://*'], // 允许Expo应用的来源
        'allowed_origins_patterns' => [],
        'allowed_headers' => ['*'],
        'exposed_headers' => [],
        'max_age' => 0,
        'supports_credentials' => true, // 需携带Cookie时开启
    ];
    
  • 清除配置缓存:php artisan config:clear

4. 验证TenancyForLaravel的域名识别逻辑

  • 确认config/tenancy.php中identification_drivers包含domain:
    'identification_drivers' => [
        Stancl\Tenancy\Identification\Drivers\Domain\DomainDriver::class,
    ],
    
  • 检查租户域名关联是否正确,可通过php artisan tenants:list查看

调试建议

  • 使用Expo的Network模块检查网络连接状态:
    import * as Network from 'expo-network';
    const status = await Network.getNetworkStateAsync();
    console.log('Network Status:', status);
    
  • 用Charles抓包工具查看请求是否正确发送到目标地址,以及后端返回的具体响应

内容的提问来源于stack exchange,提问作者Derek Hale

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 15:07:23