第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

允許 is_request 1 的用戶不登錄

允許 is_request 1 的用戶不登錄

PHP
Helenr 2022-07-22 16:52:26
我目前正在開發(fā)一個人們可以提交注冊請求的系統(tǒng)。管理員需要接受請求才能使用戶能夠登錄。在我的數(shù)據(jù)庫中,我有一個名為的字段is_request,每次注冊時,該字段默認設(shè)置為 1(在database) ,意思是。當(dāng)此字段設(shè)置為 1 的用戶嘗試登錄時,需要通知他們其帳戶尚未激活。我怎樣才能做到這一點?當(dāng)用戶嘗試注冊時,會發(fā)生以下情況:protected function create(array $data)    {        $users = User::where('role_id', 1)->get();        $user = User::create([            'firstname' => $data['firstname'],            'lastname' => $data['lastname'],            'email' => $data['email'],            'role_id' => 3,            'activated' => 0,            'user_token' => Str::random(32),            'password' => Hash::make($data['password']),        ]);        foreach($users as $admin) {            $admin->notify(new registerRequest($user));        }        Mail::to($user->email)->send(new RegisterRequestSend($user));        return $user;    }當(dāng)后端管理員“接受”請求時,該字段is_request將設(shè)置為 0,并且用戶需要能夠登錄應(yīng)用程序。登錄控制器看起來像這樣class LoginController extends Controller{    /*    |--------------------------------------------------------------------------    | Login Controller    |--------------------------------------------------------------------------    |    | This controller handles authenticating users for the application and    | redirecting them to your home screen. The controller uses a trait    | to conveniently provide its functionality to your applications.    |    */    use AuthenticatesUsers;    /**     * Where to redirect users after login.     *     * @var string     */    protected $redirectTo = RouteServiceProvider::HOME;    /**     * Create a new controller instance.     *     * @return void     */    public function __construct()    {        $this->middleware('guest')->except('logout');    }}
查看完整描述

2 回答

?
尚方寶劍之說

TA貢獻1788條經(jīng)驗 獲得超4個贊

您可以創(chuàng)建一個全局中間件來檢查用戶是否被接受:


namespace App\Http\Middleware;


use Closure;


class CheckIfAccepted

{

    /**

     * Handle an incoming request.

     *

     * @param  \Illuminate\Http\Request  $request

     * @param  \Closure  $next

     * @return mixed

     */

    public function handle($request, Closure $next)

    {

        if (auth()->check() && !auth()->user()->isAccepted) {

            auth()->logout();


            return redirect('not-accepted');

        }


        return $next($request);

    }

}

此中間件將注銷任何未被接受的經(jīng)過身份驗證的用戶,并將他們重定向到您選擇的路線。


更改auth()->user()->isAccepted為包含有關(guān)已接受狀態(tài)信息的屬性或方法。


如果您希望中間件在每個請求時運行,您可以通過將其添加到$middleware-array in 中,將其添加為全局中間件app/Http/Kernel.php。


您可以在文檔中閱讀有關(guān)中間件以及如何創(chuàng)建它們的更多信息: https ://laravel.com/docs/master/middleware


查看完整回答
反對 回復(fù) 2022-07-22
?
喵喵時光機

TA貢獻1846條經(jīng)驗 獲得超7個贊

首先,您必須讓管理員在收到通知時更新用戶的屬性


User::where('id' , $user_id)->update(['is_request' => 0]);


然后將其添加到您的登錄控制器中


public function credentials(Request $request)

    {

        $credentials = $request->only($this->username(), 'password');

        $credentials = array_add($credentials, 'is_request', 0);

        return $credentials;

    }


查看完整回答
反對 回復(fù) 2022-07-22
  • 2 回答
  • 0 關(guān)注
  • 100 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號