Swa*_*iri 10 php middleware laravel
如果我在中间件中进行身份验证并向\Illuminate\Http\Request $request
对象添加一些数据并通过注入\Illuminate\Http\Request $request
控制器方法在控制器中使用该数据,这是否可取?
原因是,应用程序需要进行数据库调用以查明凭据是否有效,如果是,则返回类似我在后续数据库操作中使用的主键.
目前,一切都在控制器中完成.如果我要使用单独的中间件进行身份验证,如果中间件检查通过,我可以将我的控制器所需的数据绑定到请求对象吗?如果是的话,我应该怎么做呢?
灵感 - Expressjs通过一堆中间件/路由绑定和传递数据的方式.
我不明白 - 你为什么不使用Laravel验证器?
你说:
原因是,应用程序需要进行数据库调用以查明凭据是否有效,如果是,则返回类似我在后续数据库操作中使用的主键.
这正是Laravel Authenticator的作用吗?
然后在你的控制器中你就可以做到
`auth()->user()` // gives you the user record
`auth()->id()` // user_id from the DB
`auth()->user()->name` // gives you the `name` column off the record. You can change it to anything.
Run Code Online (Sandbox Code Playgroud)
编辑:同时 - 您仍然可以使用Laravel身份验证器包,同时使用旧系统进行身份验证.在您的中间件中,您可以执行以下操作:
if (doLegacyCheckHere()) {
Auth::loginUsingId(1);
}
Run Code Online (Sandbox Code Playgroud)
这意味着您可以通过neo4j图形数据库进行检查 - 如果它返回true
用户已正确认证 - 那么您只需自己将它们登录到Laravel系统.
是的,这可能是一个好方法,因为内置的 Laravel 身份验证系统的工作方式相同:您可以通过$request::user()
. 请参阅http://laravel.com/docs/5.0/authentication#retriving-the-authenticated-user
归档时间: |
|
查看次数: |
1978 次 |
最近记录: |