如何在laravel 5中使用哨兵?

时间:2015-02-16 09:49:02

标签: php laravel cartalyst-sentry

我尝试在laravel 5中安装哨兵,但它不起作用。我想知道是否有人这样做以及如何做到这一点。

更新:我使用了Laravel 4的说明。

4 个答案:

答案 0 :(得分:17)

我有这个工作。

  1. 现在L5的Sentry没有官方支持。他们在自己的网站上说明了这一点。然而,他们正在研究它。

  2. 将以下内容添加到require部分的composer.json文件中。

    "cartalyst/sentry": "dev-feature/laravel-5",
    "illuminate/html": "~5.0"
    
  3. 将以下内容添加到自动加载部分。

    "app/Http/Controllers",
    

    它应该类似于:

    "require": {
        "laravel/framework": "5.0.*",
        "cartalyst/sentry": "dev-feature/laravel-5",
        "illuminate/html": "~5.0"
    },
    "require-dev": {
        "phpunit/phpunit": "~4.0",
        "phpspec/phpspec": "~2.1"
    },
    "autoload": {
        "classmap": [
            "database",
            "app/Classes",
            "app/Http/Controllers",
            "app/Models"
    
    1. (假设linux没有别名)运行 php composer.phar dump-autoload 然后 php composer.phar update

    2. 按照以下页面上的说明将文件从4.2转换为5.0:http://laravel.com/docs/master/upgrade#upgrade-5.0

    3. 如果您正在使用HTML Facade for FORMS,请将{{{}}}或{{}}更改为{!! !!}因为L5逃脱了{{{}}}和{{}}的所有输出。如果你想要原始输出你必须使用{!! !!}

    4. 按照#4中的说明将重定向检查移动到引导方法时,将以下内容添加到RouteServiceProvider.php的顶部

      使用Cartalyst \ Sentry \ Facades \ Laravel \ Sentry;

    5. 启动方法应该类似于:

      public function boot(Router $router)
          {
              parent::boot($router);
              // Check if someone is already logged in
              Route::filter('members_auth',function(){
              //If already logged in go to dashboard or else login
                  if(!Sentry::check()){
                      return Redirect::to('/login');
                  }
              });
      
              //
          }
      

      更新02-26-15

      1. 不要运行命令 php artisan optimize ,因为它会破坏哨兵。在我运行这个之后我无法弄清楚出了什么问题,但是我认为它可能与compile.php文件有关,所以我运行了 php artisan optimize --force 并解决了问题所在。 / LI>

        希望它有所帮助。

        Wayne Leiser,I.T。导演

        B2B I.T.溶液

        **更新29-03-2018 ** 哨兵现在supports Laravel 5.x

答案 1 :(得分:2)

我没有亲自安装它,但我知道它是兼容的。 https://medium.com/@Cartalyst/laravel-5-support-4c11e01c3337

安装说明没有特定的Laravel5信息,但它应该与L4相同,等待您拉入正确的分支。假设您正在使用composer,您可以通过在composer.json中要求"cartalyst/sentry": "dev-feature/laravel-5"来实现此目的。

按照L4安装的其余部分(添加到提供者和别名数组)和信息,除了记住app.php不再在app/config/app.php但在config/app.php

如果事情仍然不适合您,请务必至少使用一些信息更新您的问题......

答案 2 :(得分:1)

bootstarpCms同时使用laravel5和sentry,因此您可以阅读要学习的源代码。https://github.com/BootstrapCMS/CMS

答案 3 :(得分:0)

尝试Sentinel:https://github.com/rydurham/Sentinel

添加到作曲家

composer require rydurham/sentinel

在config / app.php中

'providers' => array(
    ...
    'Sentinel\SentinelServiceProvider', 
    ...
)

在app / Http / Kernel.php中

protected $routeMiddleware = [
    // ..
    'sentry.auth' => 'Sentinel\Middleware\SentryAuth',
    'sentry.admin' => 'Sentinel\Middleware\SentryAdminAccess',
];

然后

发布配置:

php artisan sentinel:publish

运行迁移:

php artisan migrate

运行播种机:

php artisan db:seed --class=SentinelDatabaseSeeder

在app / routes.php中添加主路线

 Route::get('/', array('as' => 'home', function()
{
    return View::make('home');
}));

全部完成后,转到myapp.dev/login