現在、多くの Web サイトでこのような機能が提供されており、ユーザーは電子メール、携帯電話番号、またはニックネームで Web サイトにログインできます。Laravel でこの機能を実装する方法は次のとおりです (例として 5.1)。
以下の 3 つの方法の基本原理は同じです。
Laravel 独自の認証システムを使用し、/app/Http/Controllers/Auth/AuthController.php ファイルを変更し、メソッド (元のメソッドが配置されているファイル /vendor/laravel/framework/) を書き換えます。 src/Illuminate/Foundation /Auth/AuthenticatesUsers.php):
namespace App\Http\Controllers\Auth;......use Illuminate\Http\Request; // 增加该行class AuthController extends Controller{ protected $username = 'login'; .... protected function getCredentials(Request $request) { $login = $request->get('login'); $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'name'; return [ $field => $login, 'password' => $request->get('password'), ]; }}
/app/Http/Controllers/Auth/AuthController.php ファイルを変更する これも、Laravel 独自の認証システムを使用する方法です。
メソッド 3. メソッド San
ログイン関数を書き換える
Loginrequest.php:
AuthController.php: