【问题标题】:How to use Auth outside Laravel 5如何在 Laravel 5 之外使用 Auth
【发布时间】:2016-07-19 14:20:09
【问题描述】:

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

你能告诉我这是怎么做的吗?

现在我有这个:

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

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

这给了我一些身份验证实例,但不确定如何处理它。我需要有类似的东西:

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

谢谢

【问题讨论】:

  • 你想做什么?请解释一下?
  • 我有一个 laravel 5.2 应用程序。我也有自定义文件管理器,它不在 laravel 应用程序中运行。我希望只有经过身份验证的用户才能访问文件管理器。我还想访问他们的信息 - 姓名、电子邮件等。

标签: laravel-5.2 laravel-authorization


【解决方案1】:

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

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

现在使用这个middleware'=>'auth',只有登录用户才能访问Dashboard page

【讨论】:

  • 没有。正如我所说,这个文件管理器不是 laravel 应用程序的一部分,所以我不能使用 laravel 路由器来限制访问。而且这不仅仅是限制,我还想拥有用户数据。
  • 如果 Filemanager 不是 Laravel App 的一部分,那么你是如何尝试使用 laravel Auth Class 开箱即用的?
  • 我不想要那个,它是一个独立的应用程序。 responsivefilemanager.com 。我知道这是可能的,我已经使用 Laravel 4 实现了它,并提供了一些类似这样的解决方案:laracasts.com/discuss/channels/general-discussion/…
  • 好吧,那我就不知道了
【解决方案2】:

对于 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());

【讨论】:

    猜你喜欢
    • 2015-09-21
    • 1970-01-01
    • 2015-04-28
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-19
    • 2016-05-17
    相关资源
    最近更新 更多