Laravel 5.4: 在第一次登录时创建密码
我已经阅读了许多有关如何迫使用户第一次登录的帖子,自从Laravel 5.4出现以来,大多数帖子已经过时了(我正在使用). 我被困在将中间件添加到"捕获"新用户第一次登录的地方.我将使用临时密码分配用户,一旦以登录表单输入正确的凭据,我想将其重定向到可以创建自己的密码的页面.我做不是希望用户被"认证",直到他们创建密码为止.否则,如果他们尝试去其他任何地方,他们将被发送回登录页面.我宁愿不修改Laravel中的任何基本代码.所以, 创建事件是最好的选择吗? 或应该使用中间件,我将在哪里放置路线?在我的客人中间件和我的身份中间件之间?这是我的路线: web.php ... // Login Routes Route::group(['prefix' => 'auth', 'namespace' => 'Admin\Auth'], function(){ // Login Routes Route::get('login', 'LoginCon
0 2023-06-03
编程技术问答社区
带有Firebase JWT的PHP Slim
我试图将Firebase Auth与PHP Slim(JWT)集成在一起,而没有任何运气.我使用Firebase用户登录并正确保存令牌.然后我将Midleware.php设置为这样: $app->add(new Tuupola\Middleware\JwtAuthentication([ "ignore" => ["/countries","/faqs"], "secret" => $secrets, "secure" => false ])); $ necrets是来自securetoken@system.gserviceaccount.com的孩子.但是,我一直遇到错误401未经授权. 使用自定义$ Secret和自定义JWT尝试时,相同的代码可以正常工作. Firebase在JWTAuthentication中需要额外的东西吗? 解决方案 因此,问题是Tuupola的JWTauthentication如何处理孩子(实际上是KID -键
0 2023-06-02
编程技术问答社区
如何在Lumen中使用身份验证进行用户登录?为什么我看到了��未经授权�� 启动时?
我有一个未加载/显示的登录页面(用户名/密码输入).相反,在启动应用程序时,所有显示的内容都是"未经授权". 这是从Authenticate.php中的命令中,我在下面还包括了. 我的routes.php: $app->get('/', 'PageController@index'); $app->group(['middleware' => 'middleware.auth'], function ($app) { $app->post('/', ['uses' => 'AuthenticationController@login']); }); 我的PageController.php: namespace App\Http\Controllers; use App\User; class PageController extends Controller { public function __construct() {
0 2023-06-01
编程技术问答社区
响应对象上的PSR-7 "属性"
我正在使用PSR-7(带有Zend Expractive)开发.我发现了方法 ServerRequestInterface::withAttribute() 我想知道为什么对象响应没有一个. 处理后,我想通过"响应侧"通过中间元素. 是否有某种方式可以将"属性"传递给后期处理的"属性"?遵循建筑指南的最佳方法是什么? 解决方案 最佳实践是使用请求对象在中间件之间传递数据.响应是向客户出去的,您​​想保持此清洁.该请求仅存在于服务器上,您可以添加(敏感数据)属性要传递.如果出现问题或您在删除自定义数据之前提早返回响应,那么您的响应是"干净". 另外,如果您需要传递数据:中间件始终按照配置的顺序执行.这样,您可以确保Middlewarex中的请求对象包含Middlewarey的数据. 更新:一个关于如何使用A请求传递数据的示例. 中间件2设置了一个Middleware 4可以用来设置数据的Messenger对象.
2 2023-06-01
编程技术问答社区
Laravel 5身份验证中间件始终重定向到root或login
当我在Laravel 5中保护路由时,当我未登录时,它可以很好地工作,因为它将受保护的路由重定向到登录页面,但是一旦我登录并尝试访问受保护的路由,它就会将我重定向到根路由. 例如,如果我尝试访问/人或/人/1,它将我将我重定向到/ 这是我的routes.php文件: Route::get('/', function () { return view('welcome'); }); Route::group(['middleware' => ['auth']], function () { Route::resource('people', 'PeopleController'); Route::resource('people.checkins', 'CheckinsController'); Route::model('checkins', 'Checkin'); Route::model('people', 'Person'); Route::bind('
2 2023-05-31
编程技术问答社区
Laravel. 重定向的目的是为了发布方法
我正在使用Laravel 5,这是我的问题.用户填写表单X,如果他没有登录,他会重定向以填充更多字段表格或登录可能性.如果用户填写其他字段,一切都很好,但是如果他登录,则Laravel Redirects用户用get方法而不是帖子形成X. 这就是我的中间件重定向的样子: return redirect()->guest('user/additional-fields'); 此重定向出现在成功登录中: return redirect()->intended(); 因此,在重定向的意图上,我会出错 MethodNotloweredHttpException. URL是正确的,定义为邮政方法.我在这里想念什么?为什么Laravel重定向将作为GET方法?我该如何解决这个问题?谢谢! 编辑: Route::post('/user/log-in-post', ['as' => 'user-log-in-post', 'uses' => 'UserControl
0 2023-05-31
编程技术问答社区
如何在Middleware Slim PHP框架中作出回应
我正在为REST API创建中间件.我的API是使用Slim PHP Framework创建的,如果它为构建API提供了出色的功能.这些功能之一是中间件. 我需要在中间件中检查凭据,并对用户响应错误(带有JSON说明的HTTP代码). 但是不幸的是,每当我尝试停止并使用HTTP代码响应时,Slim Framework就会给我一个例外.
0 2023-05-31
编程技术问答社区
如何以Laravel(更好的方式)为路线分配中间件?
我想在这里您的意见或您最著名的实践,以将中间件分配给Laravel的路线.我读了3种方法: 数组(单个和多个) Route::get('/',['middlware' => 'auth', function () { // Code goes here }]); Route::get('/', ['middleware' => ['first', 'second'], function () { // }]); 链方法 Route::get('/', function () { // })->middleware(['first', 'second']); 完全合格的班级名称 use App\Http\Middleware\FooMiddleware; Route::get('admin/profile', ['middleware' => FooMiddleware::class, function () { // }]); 我只想知道您
2 2023-05-30
编程技术问答社区
如何在管腔框架中获取中间件的当前路线?
我已经使用Lumen开发了API应用程序.以及访问权限控件.我想在中间件中获取当前路线.但是,我总是毫无疑问: $route = $request->route(); 我已经尝试在获取使用Lumen中间软件中的当前路由信息?使用RouteMiddleware和Dispatcher的哪个路由信息.但这仍然是返回的.我如何获得中间件上的当前路线? 非常感谢.. 解决方案 请更新您的管腔...一切都没有问题 namespace App\Http\Middleware; public function handle($request, Closure $next) { $route = $request->route(); $path = $request->getPathInfo(); // your code here return $next($request); } 其他解决方案 不幸的是,这是不可能的.至少它
0 2023-05-30
编程技术问答社区
Laravel 5重定向循环错误
我试图进行登录和管理脚本,问题是我有一个重定向循环,我不知道为什么. 我想要登录用户,并且可以在/路径中,而不是/home. 如果更改为return new RedirectResponse(url('/')); return new RedirectResponse(url('/anotherpage'));它有效,但我想成为/ 路由: Route::get('/', [ 'as' => 'home', 'uses' => 'HomeController@index' ]); // Tutorials Routes Route::get('/tutorials', 'HomeController@tutorials'); Route::get('/tutorials/{category?}', 'HomeController@tutorialsCategory'); Route::get('/
2 2023-05-30
编程技术问答社区
Laravel:路由中间件和策略之间的差异
与Laravel一起开发一个应用程序,我意识到可以用Policy可以通过Middleware来完成操作.假设我想防止用户如果他/她不是信息的所有者更新路由,我可以轻松地从该路线检查并可以从策略中执行相同的操作. 所以我的问题是为什么我应该在中间件上使用policy,反之亦然 解决方案 我目前正在经历一个小的重构,并以自己的角色,权限和路线进行了同样的问题. 在表面层面上,它似乎是真正的中间件,而策略则执行相同的一般想法.检查用户是否可以做他们在做的事情. 供参考,这是Laravel文档... 中间件 "我可以看到吗?我可以去这里吗?" HTTP中间件提供了过滤HTTP的方便机制 请求输入您的申请.例如,Laravel包括一个 验证应用程序用户的中间件是 身份验证.如果未对用户进行身份验证,则中间件将 将用户重定向到登录屏幕.但是,如果用户是 经过身份验证,中间件将允许请求继续 进一步进入应用程序. 当然,可以编写其他中间件来执行各种 除了身份验
2 2023-05-30
编程技术问答社区
中间件的拉维顺序(中间件优先级)。使用Postgres的多租户
在 web.php 中,我在中间件中切换了Postgres模式,因为已提出了HTTP请求的子域类型.这样: Route::group( [ 'domain' => '{tenant}.' . config('app.url'), 'middleware' => 'select-schema' ], function () { $this->get('/', 'HomeController@index')->middleware('auth'); } ); 在 select-schema 中间件中,我做这样的事情.这可以正常工作. (不用担心) DB::select('SET search_path TO ' . {tenant}); 我的主要问题是:对于public> public架构和任何individual tenant,我与众不同.在individual tenant中,我有
0 2023-05-28
编程技术问答社区
“寡妇5中间件的所有者”?
我在创建"所有者"中间件时遇到麻烦. 例如,我有Articles和User与user_id键关联的模型. 我想将"所有者"中间件添加到ArticlesController,因此该文章的唯一所有者可以编辑,更新和删除它. 我已经搜索了这个问题已经有一段时间了,但是从未找到可以使用的代码. 他们中的一些人试图使其与表单请求一起使用,但我有兴趣使用中间件. 解决方案 创建中间件: php artisan make:middleware OwnerMiddleware namespace App\Http\Middleware; use App\Article; use Closure; use Illuminate\Contracts\Auth\Guard; class OwnerMiddleware { /** * The Guard implementation. * * @var Guard */
2 2023-05-28
编程技术问答社区
在条件-拉威尔上运行一个中间件
我有一个中间软件,该中间件检查请求中的特定标题参数,并根据此发送回复. ,但我的问题是我不希望该中间件在控制器中始终运行.我希望如果条件在功能中成真,则中间件可以运行(例如:商店函数). 我该如何实现? 解决方案 中间要在击中控制器动作之前调用中间.因此,无法根据操作中的条件执行中间件.但是,有条件地执行中间件: 通过请求 您可以将条件添加到请求对象(隐藏字段或类似) public function handle($request, Closure $next) { // Check if the condition is present and set to true if ($request->has('condition') && $request->condition == true)) { // } // if not, call the next middleware return
0 2023-05-28
编程技术问答社区
Slim 4中的路由中间件不会停止调用路由中的可调用程序。
我在Slim4中对授权中间件感到沮丧.这是我的代码: $app = AppFactory::create(); $app->add(new Authentication()); $app->group('/providers', function(RouteCollectorProxy $group){ $group->get('/', 'Project\Controller\ProviderController:get'); })->add(new SuperuserAuthorization()); 身份验证中间件检查用户并正常工作. ProviderController中的方法 get 是 public function get(Request $request, Response $response): Response{ $payload = []; foreach(Provider::all() as $provider){
0 2023-05-28
编程技术问答社区
使用Laravel Auth中间件
Laravel 5.1确实有很少的文档. 我需要清楚地了解如何使用Auth Middileware保护路线. 文档告诉路由添加"中间件" =>" auth"参数. 或可以做 public function __construct() { $this->middleware('auth'); } 但是如何将验证中间件用于实际用户身份验证和自动重定向到/登录受保护路由?? 解决方案 在kernel.php中 - 在受保护的$ routemiddleware下有注册的中间Wares: /** * The application's route middleware. * * @var array */ protected $routeMiddleware = [ 'auth' => 'App\Http\Middleware\Authenticate', 'auth.basic' => 'Illumina
4 2023-05-28
编程技术问答社区
Laravel的RoleMiddleware,没有找到角色类
我正在尝试添加一个简单的中间件来检查用户是否匹配角色.当我使用中间件时,我会遇到问题,我会得到一个例外: reflectionException:班级角色不存在 我不尝试调用名为角色的班级,所以我认为这是在Laravel上神奇地发生的. 我的中间件: class RoleMiddleware { /** * Run the request filter. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @param string $role * @return mixed */ public function handle($request, Closure $next, $role) { if (! $request->user()->is($rol
0 2023-05-28
编程技术问答社区
中间件中的Slim PHP路线
在Slim中,可以在中间件中获取当前路线吗? class Auth extends \Slim\Middleware{ public function call(){ $currentRoute = $this->app->getRoute(); // Something like this? } } 我知道您可以调用slim.before.dispatch挂钩后调用$app->router()->getCurrentRoute(),但是当您从中间件调用它时,它会返回非对象.任何帮助将不胜感激. 解决方案 是,否.如果您查看Slim的源代码,您会发现当调用Slim::run方法时,已注册的中间Wares将以LIFO顺序调用,然后Slim运行它是自己的"呼叫"方法,其中请求的处理开始.正是在这种方法中,纤细解析和处理路线.在这种情况下,您无法在Middleware::call方法中访问$app->router()->getCurrentRoute(),因
4 2023-05-28
编程技术问答社区