Laravel 5.3,ECHO& Pusher,将Pusher的秘密输出到.env

时间:2017-01-23 11:32:20

标签: php environment-variables laravel-5.3 pusher laravel-echo

我正在使用Laravel 5.3和Pusher,而且一切运行良好。

但是,我想将我的Pusher凭据导出到.env。或者在其他任何地方,以便我可以在我的开发/舞台/制作环境中轻松使用不同的Pusher应用程序。

这是我的设置:

从“laravel-echo”导入Echo

window.Echo = new Echo({
    broadcaster: 'pusher',
    key: 'myKey', //development key
    cluster: 'eu',
    encrypted: true
});

gulpfile.js我有

elixir(function(mix) {
    mix.webpack('echo.js','./resources/assets/js/');
});

然后

mix.scripts([
    'echo.js',
    ...
], 'public/js/all.js');

最后在我看来:

let myRoom = 'room-user-'+'{{ Auth::user()->id }}';
    Echo.private(myRoom)
        .listen('MyEvent', (e) => {
            console.log(e);
        });

正如我所说,这一切都运作良好。

我的问题是key: 'myKey', //development key。有一种简单的方法可以在这里使用Laravel环境变量env('PUSHER_KEY')吗?因为现在我需要在我的开发,分期和制作中使用相同的Pusher App。

我的config/broadcasting也是

'connections' => [

    'pusher' => [
        'driver' => 'pusher',
        'key' => env('PUSHER_KEY'),
        'secret' => env('PUSHER_SECRET'),
        'app_id' => env('PUSHER_APP_ID'),
        'options' => [
            'cluster' => env('PUSHER_CLUSTER','eu'),
            'encrypted' => true,
        ],
    ],

1 个答案:

答案 0 :(得分:0)

我最终使用laravel-elixir-env库作为:

<强> gulpfile.js

var elixir = require('laravel-elixir');
require('laravel-elixir-env');
...
elixir(function(mix) {
   mix.webpack('echo.js','./resources/assets/js/');
});
...

<强> echo.js

import Echo from "laravel-echo"
window.Echo = new Echo({
    broadcaster: 'pusher',
    key: process.env.PUSHER_KEY,
    cluster: 'eu',
    encrypted: true
});

<强> .ENV

...
PUSHER_KEY=my_pusher_key
...