当前位置: 首页 > 知识库问答 >
问题:

Laravel 5.2认证

朱通
2023-03-14

我一直试图让Laravel的新版本(5.2)与一个简单的网络应用程序一起工作。然而,我在身份验证方面遇到了问题。

应用程序的所有页面都包括一个导航视图部分,使用Auth::user()-

为了做到这一点,我创建了一个页面控制器,它在构造函数中加载auth中间件:

public function __construct()
{
    $this->middleware('auth');
}

如果用户已登录,则此操作非常有效。但是,如果用户没有登录,则要求他们在每个页面上登录。即使是像“联系人”或“关于”这样显然不需要身份验证才能查看的页面。

如何使“关于”这样的页面始终可访问,同时仍能访问nav中的Auth?

编辑:

路线

Route::group(['middleware' => ['web']], function () {
    Route::get('/home', 'StaticController@home');
    Route::get('/about', 'StaticController@about');
    Route::get('/contact', 'StaticController@contact');
});

Route::group(['middleware' => 'web'], function () {
    Route::auth();
    Route::get('/', 'HomeController@index');
});

静态控制器

class StaticController extends Controller
{
    public function home()
    {
        return view('static.home');
    }
    public function about()
    {
        return view('static.about');
    }
    public function contact()
    {
        return view('static.contact');
    }
}

导航

<ul class="nav navbar-nav">
    @if (Auth::guest())
        <li><a href="{{ url('/login') }}">Login</a></li>
        <li><a href="{{ url('/register') }}">Register</a></li>
    @else
        <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
                {{ Auth::user()->name }} <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>

共有3个答案

令狐宏浚
2023-03-14

/app/Http/Kernel中。php

看看你有没有

'auth' => \App\Http\Middleware\Authenticate::class,

实例

protected $routeMiddleware = [

    'auth'           => \App\Http\Middleware\Authenticate::class,
    ....

];

现在,你可能需要重新设计你的路线来达到这样的东西

在你的routes.php

**//Routes (Not Require Log-in)**


Route::get('/home', 'StaticController@home');
Route::get('/about', 'StaticController@about');
Route::get('/contact', 'StaticController@contact');
**//Authentication Routes**

Route::group(['middleware' => ['auth']], function () {

    Route::get('/', 'HomeController@index');

    //................................
    //   More Auth Routes Go in HERE
    //................................

});

希望有帮助!

戚阳曜
2023-03-14

您有两种可能的解决方案

>

验证::检查()?Auth::user()-

梁丘诚
2023-03-14

删除所有内容并安装Laravel的新副本后,问题消失了。

 类似资料:
  • 身份验证驱动程序/"Multi-Auth" 在laravel 5.2发布之前,已经声明多授权支持出箱。但是没有任何示例代码显示如何使用不同的驱动程序进行身份验证。所以我需要帮助设置多身份使用默认laravel 5.2

  • 我正在使用Laravel5,我想知道如何使用Artisan命令(PHP)使用所有预定义方法生成RESTful资源控制器。 当我运行时,它会创建一个控制器,没有如下所示的方法: 我想要创建的是一个完整的Laravel RESTful资源控制器,其中包含所有预定义的方法,如:和。 我怎样才能做到这一点?

  • 我无法找到一种REST webservice方式来身份验证(登录)并知道他的角色(授权)。虽然,Openbravo维基说有一种登录的方法,但没有提供任何其他关于其网址等细节。有人能在这方面提供帮助吗?谢啦 编辑 我也在Openbravo论坛上发布了这个问题。希望这将有利于其他人。

  • 和 Web 应用不同,RESTful APIs 通常是无状态的, 也就意味着不应使用 sessions 或 cookies, 因此每个请求应附带某种授权凭证,因为用户授权状态可能没通过 sessions 或 cookies 维护, 常用的做法是每个请求都发送一个秘密的 access token 来认证用户, 由于 access token 可以唯一识别和认证用户, API 请求应通过 HTTPS

  • 认证是鉴定用户身份的过程。它通常使用一个标识符 (如用户名或电子邮件地址)和一个加密令牌(比如密码或者存取令牌)来 鉴别用户身份。认证是登录功能的基础。 Yii提供了一个认证框架,它连接了不同的组件以支持登录。欲使用这个框架, 你主要需要做以下工作: 设置用户组件 user ; 创建一个类实现 yii\web\IdentityInterface 接口。 配置 yii\web\User 用户组件 u

  • 简介 Lumen 虽然与 Laravel 使用了相同的底层类库实现,但是因 Lumen 面向的是无状态 API 的开发,不支持 session,所以默认的配置不同。Lumen 必须使用无状态的机制来实现,如 API 令牌(Token)。 开始 认证服务提供者 注意: 在使用 Lumen 的认证功能前,请取消 bootstrap/app.php 文件中的 AuthServiceProvider 调用

  • 认证 通过CVS的pserver,你需要在读写操作之前“登陆”到服务器—即使是匿名操作。Subversion版本库使用Apache的httpd或svnserve作为服务器,你不需要开始时提供认证凭证—如果一个操作需要认证,服务器会要求你的凭证(不管这凭证是用户名与密码,客户证书还是两个都有)。所以如果你的工作拷贝是全局可读的,在所有的读操作中不需要任何认证。 相对于CVS,Subversion会一

  • 单独使用PAP可能会带来安全风险,但通过TLS进行隧道传输时非常安全。 这些用户可能正在使用CHAP进行身份验证。 CHAP要求密码以明文形式存储。 大多数RAS服务器允许您选择它支持的身份验证协议。 将RAS服务器配置为仅使用PAP。 您可以使用smbencrypt程序加密密码,并使用NT哈希值的NT-Password AVP。