在AngularJS + laravel中创建登录用户变量

Ter*_*hus 7 authentication laravel angularjs

我试图创建一个名为theUser的全局变量,如果登录则包含userinfo.

我试过把它放在我的SPA php文件中:

app.value('theUser', '<?php echo Auth::user(); ?>');
Run Code Online (Sandbox Code Playgroud)

它只能在刷新页面后才能工作.(登录通过angularjs逻辑+ $ http请求到auth/login,如果登录则返回userinfo)

在我的角度认证应用程序中,我做到了这一点:

var login = $http.post("auth/login", sanitizeCredentials(credentials)).success(function(data) {
    theUser = data;
    $rootScope.theUser = theUser;
  });
Run Code Online (Sandbox Code Playgroud)

这样可行,但仅在用户登录时才有效.如果我刷新,则用户为空.我不能让这两个解决方案一起工作.我可能需要另一种方法.

我想要的只是一个用户变量,我可以从我的应用程序中的任何位置访问,如果用户登录,或者之前已登录,则设置.使用Laravel 5.1.

这是我的auth app服务js:http://pastebin.com/HcdLaZcD

任何人都可以解雇我吗?谢谢.

The*_*pha 2

要从文件访问登录用户JavaScript,您可以尝试类似的操作(创建视图编辑器,也layouts.master指示layouts/master.blade.php):

View::composer('layouts.master', function($view) {
    $user = null;
    if(Auth::check()) {
        $user = Auth::user();
    }

    $view->with('authUser', $user);
});
Run Code Online (Sandbox Code Playgroud)

在主布局中尝试这个(因此如果用户登录,User变量将可用作对象):JS

<head>
    <script>var User = {{ $authUser or 'undefined' }}</script>
</head>
Run Code Online (Sandbox Code Playgroud)

这只是一个想法,根据你的需要实现。此外,您还可以使用像App.user. 我写了一篇关于今年的文章,你可以 在这里查看。顺便说一句,这是为了Laravel 4.x