[英]Laravel 5.2 - login and user session
这似乎是要解决的非常非常基本的问题,但我一直无法解决。 我上次使用laravel就像8个月前一样,此基本的“登录-身份验证”功能目前无法正常使用。
我正在使用laravel 5.2,这是我的登录信息:
路线:
Route::post('login', [
'as' => 'post_login',
'uses' => 'Auth\AuthController@login'
]);
验证\\ AuthController.php:
public function login(Request $request)
{
if(Auth::attempt([
'email' => $request->get('email'),
'password' => $request->get('password'),
'active' => 1
]))
{
$user = Auth::user();
var_dump($user);
}
else
{
return 'Could not log in';
}
}
当我以注册用户身份登录时,它可以正确显示该用户,现在一切都变得非常完美。
但是,问题在于,在主菜单中我看不到用户名,而不是“登录”-“注册”按钮。 即使单击这些按钮之一,也不会发生任何事情,视图也不会改变并且什么也不做。
我的主菜单标记:
<nav class="navbar navbar-default">
<div class="container">
<div class="navbar-header">
<!-- Collapsed Hamburger -->
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#app-navbar-collapse">
<span class="sr-only">Toggle Navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<!-- Branding Image -->
<a class="navbar-brand" href="{{ url('/') }}">
Fotopredio
</a>
</div>
<div class="collapse navbar-collapse" id="app-navbar-collapse">
<!-- Left Side Of Navbar -->
<ul class="nav navbar-nav">
<li><a href="{{ url('/home') }}">Home</a></li>
</ul>
<!-- Right Side Of Navbar -->
<ul class="nav navbar-nav navbar-right">
<!-- Authentication Links -->
@if (Auth::guest())
<li><a href="{{ route('login') }}">Login</a></li>
<li><a href="{{ route('registration') }}">Registro</a></li>
@else
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
{{ Auth::user()->email }} <span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li><a href="{{ url('/logout') }}"><i class="fa fa-btn fa-sign-out"></i>Logout</a></li>
</ul>
</li>
@endif
</ul>
</div>
</div>
</nav>
您可以看到@if(Auth :: guest())...它不起作用,即使在我登录时,我也可以看到“登录”和“注册”按钮,当我单击它们时什么也没有发生。 我什至无法注销。
编辑
我的“欢迎”页面中有此标记,用户登录后应看到该页面。
@extends('layouts.app')
@section('title', 'Home')
@section('body')
<?php
if (Auth::check()) {
echo "Loged In";
} else {
echo "not loged in";
}
?>
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="panel panel-default">
<div class="panel-heading">Welcome</div>
<div class="panel-body">
Your Application's Landing Page.
</div>
</div>
</div>
</div>
</div>
@endsection
甚至在我登录后,它NOT LOGED IN
显示NOT LOGED IN
您的Welcome
路线也需要在您的Web 中间件中 。 对laravel 5.2的更改意味着仅在该Web 中间件中调用/运行会话。
因此,如果Welcome
不在Web 中间件中 ,则您将无法登录。(Matt 在此处提供了有关此更改的好链接)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.