3

Although I know about the authentication check via laravel, I want to know how to check via jQuery.

Actually, I want to change my CSS If user logged in. By default:

body{
    background: url('image.jpg');
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
}

If user logged in, my CSS should be updated like:

body{
    /*Nothing*/
}

I've tried something in my js file:

var loggedIn={!! json_encode(Auth::check()) !!};
if(loggedIn)
    alert('Logged In as user!');

But the above code didn't work for me. I need help. If my purpose can be done in any alternative way, you may share.

Thanks

S M Iftakhairul
  • 1,120
  • 2
  • 19
  • 42

3 Answers3

4

Try this.

var loggedIn = {{ auth()->check() ? 'true' : 'false' }};
if (loggedIn)
    alert('Logged In as user!');
Sandeesh
  • 11,486
  • 3
  • 31
  • 42
1

I suggest you place anywhere in you template a script block like this:

    <script>
        var AuthUser = "{{{ (Auth::user()) ? Auth::user() : null }}}";
    </script>

Then you can access AuthUser variable in javascript

Robert Fridzema
  • 517
  • 3
  • 18
  • This won't work in js... It's going to read var AuthUser as a string. The output of a console.log would be {{{ (Auth::user()) ? Auth::user() : null }}} – FabricioG Nov 10 '22 at 19:35
0

Laravel already uses a window.Laravel definition, so let's just extend that in the head of the master template:

<script>
    window.Laravel = {
        csrfToken: '{{csrf_token()}}',
        auth: {
            user: auth()->user()
        }
    }
</script>
Ohgodwhy
  • 49,779
  • 11
  • 80
  • 110