为了账号安全,请及时绑定邮箱和手机立即绑定

laravel5.4自带的用户认证如何在注册前执行中间件?谢谢大家~

laravel5.4自带的用户认证如何在注册前执行中间件?谢谢大家~

PHP
慕沐林林 2019-03-10 00:39:11
我的问题是这样的,现在呢我用的laravel自带的用户认证因为毕竟方面,现在碰到个问题,就是碰到一些用户恶意注册,我想在新用户注册提交前执行一个判断代码,请问怎么个思路,谢谢大家~
查看完整描述

4 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

可以使用自定义中间件来解决。

运行Artisan 命令 make:middleware 创建新的中间件:
php artisan make:middleware CheckIpIsRegistered

<?php

namespace App\Http\Middleware;

use Closure;

class CheckIpIsRegistered
{
    /**
     * 处理传入的请求
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (false) {  //添加的你逻辑
            return redirect('home');
        }

        return $next($request);
    }

}

app/Http/Kernel.php 注册中间件:

protected $routeMiddleware = [
    'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
    'can' => \Illuminate\Auth\Middleware\Authorize::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    
    'checkip' => CheckIpIsRegistered::class,
];

添加中间件到路由

Route::post('user/register', function () {
    //
})->middleware('checkip');
查看完整回答
反对 回复 2019-03-18
?
四季花海

TA贡献1811条经验 获得超5个赞

像上面说的自定义中间件后,在App\Http\Controllers\Auth\RegisterController里的构造函数中

/**
 * Create a new controller instance.
 *
 * @return void
 */
public function __construct()
{
    $this->middleware('guest');
    $this->middleware('checkIp');
}
查看完整回答
反对 回复 2019-03-18
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

我的产品是把注册用户跟印证用户分开。必须要电子邮件作为注册的一部分。然后我会发送一封印证邮件到该邮箱,只要用户在3天之内点击了这个印证链接,我就将用户从【注册用户】升级成为【印证用户】然后在权限上对2中用户做了处理。这样又不会失去真实用户注册体验,也会屏蔽掉一些捣乱分子。

查看完整回答
反对 回复 2019-03-18
?
动漫人物

TA贡献1815条经验 获得超10个赞

感谢以上几位解答

查看完整回答
反对 回复 2019-03-18
  • 4 回答
  • 0 关注
  • 514 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信