鍍金池/ 問答/PHP/ laravel5.4自帶的用戶認證如何在注冊前執(zhí)行中間件?謝謝大家~

laravel5.4自帶的用戶認證如何在注冊前執(zhí)行中間件?謝謝大家~

我的問題是這樣的,現(xiàn)在呢我用的laravel自帶的用戶認證因為畢竟方面,現(xiàn)在碰到個問題,就是碰到一些用戶惡意注冊,我想在新用戶注冊提交前執(zhí)行一個判斷代碼,請問怎么個思路,謝謝大家~

回答
編輯回答
念初

像上面說的自定義中間件后,在App\Http\Controllers\Auth\RegisterController里的構造函數中

/**
 * Create a new controller instance.
 *
 * @return void
 */
public function __construct()
{
    $this->middleware('guest');
    $this->middleware('checkIp');
}
2017年4月28日 09:57
編輯回答
放開她

可以使用自定義中間件來解決。

運行Artisan 命令 make:middleware 創(chuàng)建新的中間件:
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');
2017年8月4日 04:09
編輯回答
乖乖噠

感謝以上幾位解答

2017年1月7日 22:35
編輯回答
半心人

我的產品是把注冊用戶跟印證用戶分開。必須要電子郵件作為注冊的一部分。然后我會發(fā)送一封印證郵件到該郵箱,只要用戶在3天之內點擊了這個印證鏈接,我就將用戶從【注冊用戶】升級成為【印證用戶】然后在權限上對2中用戶做了處理。這樣又不會失去真實用戶注冊體驗,也會屏蔽掉一些搗亂分子。

2017年11月15日 18:01