我一直试图让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>
在/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
//................................
});
希望有帮助!
删除所有内容并安装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。