繁体   English   中英

我如何在laravel 5中使用哨兵?

[英]How can I use sentry with laravel 5?

我曾尝试在laravel 5中安装哨兵,但无法正常工作。 我想知道是否有人做过以及如何做。

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

我有这个工作。

  1. L5的Sentry目前没有官方支持。 他们在其网站上声明了这项权利。 他们正在努力。

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

     "cartalyst/sentry": "dev-feature/laravel-5", "illuminate/html": "~5.0" 

将以下内容添加到自动加载部分。

"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更新

  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;

引导方法应类似于:

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命令,因为它会破坏岗哨。 运行此程序后,我无法弄清楚出了什么问题,但我认为它可能必须与Compiled.php文件有关,因此我运行了php artisan Optimize --force,并修复了所有问题。

希望能帮助到你。

IT总监Wayne Leiser

B2B IT解决方案

**更新29-03-2018 ** Sentry现在支持Laravel 5.x

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

安装说明没有特定的Laravel5信息,但是在拉入正确的分支之前,该信息应与L4相同。 假设您正在使用composer,则可以通过在composer.json中要求"cartalyst/sentry": "dev-feature/laravel-5"来执行此操作。

遵循L4安装的其余部分(添加到provider和aliases数组)和信息,除了记住app.php不再位于app/config/app.php而不再位于config/app.php

如果仍然无法解决问题,请确保至少使用一些信息来更新您的问题...

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

尝试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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM