Laravel和本地隧道集成

时间:2018-10-23 15:46:49

标签: laravel laravel-5 localtunnel

我的想法是使用本地隧道的子域功能以更方便的方式公开回调URI。但是,我相信我可以通过简单的方式获得相同的结果。

这是Laravel Valet的解决方案:

package.json 中,我添加了一个名为shared

的脚本
"scripts": {
    ...
    "share": "lt --port 80 --subdomain blog --local-host blog.test"
}

AppServiceProvider.php 中,我扩展了UrlGenerator以避免重定向回http://blog.test

<?php

namespace App\Providers;

use App\Services\LocalTunnelUrlGenerator;
use Blade;
use Illuminate\Http\Resources\Json\Resource;
use Illuminate\Routing\Router;
use Illuminate\Routing\UrlGenerator;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        (...)
    }

    public function register()
    {
        $this->enableLocalTunnel();
    }

    private function enableLocalTunnel()
    {
        if (!app()->environment('local') || !config('app.use_local_tunnel')) {
            return;
        }

        $this->app->extend('url', function (UrlGenerator $defaultGenerator) {
            /** @var Router $router */
            $router = $this->app['router'];
            $routes = $router->getRoutes();

            return new LocalTunnelUrlGenerator($routes, $defaultGenerator->getRequest());
        });
    }
}

这是 LocalTunnelUrlGenerator.php

<?php

namespace App\Services;

use Illuminate\Http\Request;
use Illuminate\Routing\RouteCollection;
use Illuminate\Routing\UrlGenerator;

class LocalTunnelUrlGenerator extends UrlGenerator
{
    public function __construct(RouteCollection $routes, Request $request)
    {
        parent::__construct($routes, $request);
    }

    public function formatRoot($scheme, $root = null)
    {
        return "https://blog.localtunnel.me";
    }
}

为什么所有这些?因为每当应用程序调用{​​{1}}方法时,我们都会被发送回http://blog.test

where the problem happens

我真的需要扩展redirect()使其起作用吗?

0 个答案:

没有答案