Laravel 5.2 – Authentication เปลี่ยนให้ใช้ฟิลด์ username แทนที่ email

ขั้นตอนการเปลี่ยนให้ Laravel Authentication ตอนล็อกอิน (login) ให้ใช้ฟิลด์ชื่อ username แทนที่จะใช้ email

สำหรับ middleware(‘auth’)

แก้ไขไฟล์ app/Http/Controllers/Auth/AuthController.php โดยเพิ่ม property ชื่อ username ให้เป็นชื่อฟิลด์ที่ต้องการใช้ ตามตัวอย่าง

$ vi app/Http/Controllers/Auth/AuthController.php
...
class AuthController extends Controller
{
    ...
    protected $username = 'username';
    ....

สำหรับ middleware(‘auth.basic’)

copy ไฟล์ AuthenticateWithBasicAuth.php จาก vendor/laravel/framework ไปไว้ใน app/Http/Middleware/

$ cp vendor/laravel/framework/src/Illuminate/Auth/Middleware/AuthenticateWithBasicAuth.php app/Http/Middleware/AuthenticateWithBasicAuth.php

แก้ไขใน method ชื่อ handle() โดยใส่ฟิลด์ชื่อ username ในการเรียก method ชื่อ basic()

$ vi app/Http/Middleware/AuthenticateWithBasicAuth.php
...
class AuthenticateWithBasicAuth
{
     ....
    public function handle($request, Closure $next, $guard = null)
    {
        return $this->auth->guard($guard)->basic('username') ?: $next($request);
    }
    ...

Leave a Reply

Your email address will not be published.