Pengesahan borang Laravel terus memaparkan penyelesaian Terlarang?
过去多啦不再A梦
过去多啦不再A梦 2017-05-16 16:53:34
0
1
471
// App\Http\Requests\LoginRequest

<?

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class LoginRequest extends FormRequest
{

    public function authorize()
    {
        return false;
    }


    public function rules()
    {
        return [
            'username' => [
                'required',
            ]
        ];
    }
}
// App\Http\Controllers\Admin
<?php


namespace App\Http\Controllers\Admin;
use App\Http\Requests\LoginRequest;
use Illuminate\Cache\RateLimiter;


/**
 * Class Auth
 * @package App\Http\Controllers\Admin
 */
class Auth extends BaseController
{

    public function login()
    {
        return view('admin.login');
    }

    public function dologin(LoginRequest $request)
    {
        dd($request->fails());

        $rl = app(RateLimiter::class);
        $res = $rl->tooManyAttempts($this->getFailKey($request),5,3);
        if ($res)
            return redirect()->back()->withErrors(['errors'=>'3分钟内错误超过5次,请稍后重试']);
        $rl->hit($this->getFailKey($request));
    }

    private function getFailKey(Request $request)
    {
        return $request->input('username').':'.$request->ip();
    }
}

Paparan siaran Dilarang terus selepas log masuk. kenapa?

kemas kini Masalah telah selesai.

authorize应该返回true。返回falseAkan ada yang terlarang. Tetapi inilah masalahnya. Saya mahu mengendalikan logik sendiri apabila auth adalah palsu. Apa nak buat?

过去多啦不再A梦
过去多啦不再A梦

membalas semua(1)
大家讲道理

Timpa kaedah kelas asas berikut:

    /**
     * Get the response for a forbidden operation.
     *
     * @return \Illuminate\Http\Response
     */
    public function forbiddenResponse()
    {
        return new Response('Forbidden', 403);
    }
    

Timpa kaedah ini mengikut logik anda sendiri di bawah LoginRequest anda.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan