假设我有两个不同的模型和表,分别名为user
和company
。
正如你所知laravel使用User
模型来管理身份验证。但是因为我有两个不同的模型,我想可以分别管理它们。
我使用laravel 5.4,我不知道如何能做到这一点。
如果您谈论的是多重身份验证系统,那么您必须创建多个防护装置来实现这一点。
同样的问题也有很好的答案。
有人能举例说明Laravel5.2多重身份验证吗
它在Laravel5.2上,但可以在Laravel5.4上轻松实现。
>
创建扩展可验证类的模型App\Company。这个模型将作为公司保护的用户模型(在下一步)
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class Company extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
为Model App\Company创建防护和提供程序。
// Authenticating guards and providers
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
'company' => [
'driver' => 'session',
'provider' => 'company',
],
],
// Providers
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'company' => [
'driver' => 'eloquent',
'model' => App\Company::class,
]
],
现在你可以根据不同的守卫找到用户。
$user = Auth::guard('company')->user();
// Or...
$user = auth()->guard('company')->user();
dd($user);
现在为公司App\Http\Controllers\Auth\CompanyLoginController创建与Auth\LoginController相同的Auth控制器。指定$redirectTo和guard
//Auth\ComapnyLoginController.php
protected $redirectTo = '/comapany';
protected $guard = 'comapany';
public function showLoginForm()
{
if (view()->exists('auth.authenticate')) {
return view('auth.authenticate');
}
return view('comapany.auth.login');
}
现在为user-company.auth.login视图创建与用户登录表单相同的登录表单。
现在创建路由
//Login Routes...
Route::group(['prefix'=>'company', 'middleware'=>'company'], function(){
Route::get('/login','Auth\CompanyLoginController@showLoginForm');
Route::post('/login','Auth\CompanyLoginController@login');
// ...
// rest of the company dashboard and other links
// ...
Route::get('/logout','Auth\CompanyLoginController@logout');
});
为公司创建中间件
class RedirectIfNotCompany
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $guard
* @return mixed
*/
public function handle($request, Closure $next, $guard = 'company')
{
if (!Auth::guard($guard)->check()) {
return redirect('/');
}
return $next($request);
}
}
并将其注册到kernal.php
protected $routeMiddleware = [
'company' => \App\Http\Middleware\RedirectIfNotCompany::class,
];
这就是你所需要的。以警卫的名字访问用户
Auth::guard('company')->user()
我的应用程序对spring-data-rest访问使用基本身份验证(“/API/**”下的所有内容),对面向客户端的API使用UserDetailsService进行JWT身份验证(本例中的所有内容都在“/component”下)。在升级到Spring Boot2之前,我的一切工作如下: CORS的东西有一个单独的配置,我现在不关心,因为它以前工作得很好,现在不是任何麻烦的来源。 因此,在升级到S
我用Java和spring mvc框架编写了一个简单的应用程序。 我使用tomcat领域身份验证表单auth-method对用户进行身份验证,并将其重定向到自己的仪表板。 例如,login.jsp上的用户输入用户名和密码,现在在控制器中检查名称并通过和使用request.login(用户名,密码)方法,然后将重定向客户端发送到仪表板页面。 现在我创建了一个restful api,用于检测来自服务器
我正在开发一个带有两步身份验证的Symfony API应用程序。第一步是带有用户名和密码的表单,第二步是带有SMS服务的OTP。在json_login成功之后,json_login身份验证器必须创建jwt。因为,我使用令牌而不是PHP会话。它是通过选项在security.yaml文件中配置的。 利用Symfony框架可以制作多种不同的身份验证器和防火墙。在第一步(json_login)中,对用户进
本文向大家介绍asp.net mvc中Forms身份验证身份验证流程,包括了asp.net mvc中Forms身份验证身份验证流程的使用技巧和注意事项,需要的朋友参考一下 验证流程 一、用户登录 1、验证表单:ModelState.IsValid 2、验证用户名和密码:通过查询数据库验证 3、如果用户名和密码正确,则在客户端保存Cookie以保存用户登录状态:SetAuthCookie 1
身份验证 PDF版下载 企业应用中的URL链接可以通过OAuth2.0验证接口来获取员工的身份信息。 通过此接口获取员工身份会有一定的时间开销。对于频繁获取员工身份的场景,建议采用如下方案: 企业应用中的URL链接直接填写企业自己的页面地址; 员工跳转到企业页面时,企业校验是否有代表员工身份的cookie,此cookie由企业生成; 如果没有获取到cookie,重定向到OAuth验证链接,获取员工
问题内容: 如何在Elasticsearch中定义安全性访问?我有elasticsearch-head插件,但是您的访问不需要任何安全性。 问题答案: 不再积极支持此答案中提到的插件。 elasticsearch中没有内置的访问控制。因此,您需要设置一个反向代理(这是一个博客文章,介绍如何设置nginx),使用第三方的Elasticsearch插件之一,例如https://github.com/A