如何在Laravel 5之外使用Auth

时间:2016-03-31 08:34:18

标签: laravel-5.2 laravel-authorization

我有一个在我使用的Laravel 5.2应用程序之外运行的php脚本,我想从这个外部php脚本访问Auth :: class。因此,如果用户登录了laravel应用程序,他也可以执行此php文件。

你能说出这是怎么做的吗?

现在我有了这个:

require __DIR__.'../../../../bootstrap/autoload.php';
$app = require __DIR__.'../../../../bootstrap/app.php';

$app->boot();
$app->register(\Illuminate\Auth\AuthServiceProvider::class);
dd($app['auth']);

这给了我一些auth实例,但不知道如何处理它。我需要有类似的东西:

if ($app['auth']::guest()) {
    dd("Go away you guest.");
}

由于

2 个答案:

答案 0 :(得分:0)

您不需要在Laravel核心文件中执行任何操作...只需添加一些路由并将Auth中间件添加到您所需的路由中,因此未经身份验证的用户将无法访问上述URL

Route::group(['prefix'=>'admin', 'middleware'=>'auth'], function(){
 Route::get('dashboard',['as'=>'user-dashboard','uses'=>'Admin\UserController@dashboard']);
});

现在使用此middleware'=>'auth'仅登录用户可以访问Dashboard page

答案 1 :(得分:0)

对于5.7,在外部文件上添加以下代码:

require $_SERVER['DOCUMENT_ROOT'].'/appname/vendor/autoload.php';
$app = require_once $_SERVER['DOCUMENT_ROOT'].'/appname/bootstrap/app.php';
$app->make('Illuminate\Contracts\Http\Kernel')
    ->handle(Illuminate\Http\Request::capture());