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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Laravel 7 身份驗(yàn)證嘗試

Laravel 7 身份驗(yàn)證嘗試

PHP
一只甜甜圈 2023-08-26 17:32:10
根據(jù) Laravel 7.x 文檔,我嘗試為我的應(yīng)用程序創(chuàng)建手動(dòng)身份驗(yàn)證。文檔顯示如下:<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use Illuminate\Support\Facades\Auth;class LoginController extends Controller{    public function authenticate(Request $request)    {        $credentials = $request->only('email', 'password');        if (Auth::attempt($credentials)) {            // Authentication passed...            return redirect()->intended('dashboard');        }    }}我有自己的用戶表:sys_users==========user_acc character varying(20) NOT NULL, -- Primary Keyfull_name character varying(300) NOT NULL,is_suspended boolean DEFAULT FALSE,CONSTRAINT PK_SysUsers PRIMARY KEY (user_acc),要登錄,用戶需要輸入以下數(shù)據(jù):用戶名密碼訪問模塊我嘗試對(duì)控制器進(jìn)行一些自定義(尚未完成):class LoginController extends Controller{    public function authenticate(Request $request)    {        $request->validate([            'username' => 'required',            'password' => 'required',        ]);                $credentials = $request->only('username', 'password', 'module');        if (Auth::attempt($credentials)) {            return redirect()->route($request->module);        }    }}我想在上面的自定義代碼中添加的是:(i)通過查詢表來檢查用戶名是否存在于表中sys_users,(ii)使用POP3檢查密碼(我已經(jīng)準(zhǔn)備好了phpmailer庫和代碼),以及( iii)通過查詢我準(zhǔn)備的另一個(gè)表來檢查用戶是否有權(quán)訪問這些模塊。問題是:我不知道將所有代碼放在哪里。如果可能的話,我想將它們放在Auth類的attempt方法中,但我似乎找不到所謂的方法。文檔非常缺乏,沒有提供詳細(xì)的解釋。如果不知何故無法修改類attempt中的方法Auth,我應(yīng)該如何進(jìn)行身份驗(yàn)證過程?
查看完整描述

1 回答

?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊

您想要做的是實(shí)現(xiàn)您自己的用戶提供程序,以使用外部 POP3 電子郵件系統(tǒng)驗(yàn)證您的用戶憑據(jù)。

我不認(rèn)為您需要自定義您的 Guard,因?yàn)槲壹僭O(shè)您仍然希望StatefulGuard默認(rèn)的SessionGuardGuard 會(huì)檢查并存儲(chǔ)有關(guān)會(huì)話中身份驗(yàn)證狀態(tài)的信息。

我認(rèn)為除了如何驗(yàn)證所提供的憑據(jù)之外,您可能還需要所有其他默認(rèn)行為。

也許./app/Providers/您可以在文件夾中創(chuàng)建:

PopThreeUserProvider.php

namespace App\Providers;


use Illuminate\Auth\EloquentUserProvider;

use Illuminate\Contracts\Auth\Authenticatable as UserContract;


class PopThreeUserProvider extends EloquentUserProvider

{

? ? /**

? ? ?* Validate a user against the given credentials.

? ? ?*

? ? ?* @param? \Illuminate\Contracts\Auth\Authenticatable? $user

? ? ?* @param? array? $credentials

? ? ?* @return bool

? ? ?*/

? ? public function validateCredentials(UserContract $user, array $credentials)

? ? {

? ? ? ? // Implement your pop3 authentication here, I have left the default code

? ? ? ? // for the Eloquent provider below

? ? ? ? $plain = $credentials['password'];


? ? ? ? return $this->hasher->check($plain, $user->getAuthPassword());

? ? }

}

現(xiàn)在在你的./app/Providers/AuthServiceProvider.php


class AuthServiceProvider extends ServiceProvider

{

? ? ...


? ? /**

? ? ?* Register any application authentication / authorization services.

? ? ?*

? ? ?* @return void

? ? ?*/

? ? public function boot()

? ? {

? ? ? ? ...


? ? ? ? Auth::provider('pop3', function ($app, array $config) {

? ? ? ? ? ? return new PopThreeUserProvider($app->make('hash'), $config['model']);

? ? ? ? });


? ? ? ? ...

? ? }


? ? ...

}

現(xiàn)在在你的config/auth.php:


? ? ...


? ? 'providers' => [

? ? ? ? 'users' => [

? ? ? ? ? ? 'driver' => 'pop3',

? ? ? ? ],

? ? ],


? ? ...

當(dāng)然,這一切都假設(shè)您擁有:


class User extends Authenticatable

{

? ? protected $table = 'sys_users';

? ? protected $primaryKey = 'user_acc';

? ? protected $incrementing = false;

? ? ...


查看完整回答
反對(duì) 回復(fù) 2023-08-26
  • 1 回答
  • 0 關(guān)注
  • 152 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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