Làm cách nào để đăng nhập và đăng ký trong Laravel 8?

Nhiều ứng dụng web cung cấp cách để người dùng của họ xác thực với ứng dụng và "đăng nhập". Việc triển khai tính năng này trong các ứng dụng web có thể là một nỗ lực phức tạp và tiềm ẩn rủi ro. Vì lý do này, Laravel cố gắng cung cấp cho bạn các công cụ cần thiết để triển khai xác thực nhanh chóng, an toàn và dễ dàng

Về cốt lõi, các cơ sở xác thực của Laravel được tạo thành từ "người bảo vệ" và "nhà cung cấp". Bộ bảo vệ xác định cách người dùng được xác thực cho từng yêu cầu. Ví dụ: Laravel cung cấp một bộ bảo vệ

Route::get['/flights', function [] {

// Only authenticated users may access this route...

6 để duy trì trạng thái bằng cách sử dụng lưu trữ phiên và cookie

Nhà cung cấp xác định cách người dùng được truy xuất từ ​​bộ lưu trữ liên tục của bạn. Laravel cung cấp hỗ trợ truy xuất người dùng bằng Eloquent và trình tạo truy vấn cơ sở dữ liệu. Tuy nhiên, bạn có thể tự do xác định các nhà cung cấp bổ sung nếu cần cho ứng dụng của mình

Tệp cấu hình xác thực của ứng dụng của bạn được đặt tại

Route::get['/flights', function [] {

// Only authenticated users may access this route...

7. Tệp này chứa một số tùy chọn được ghi chép đầy đủ để điều chỉnh hành vi của các dịch vụ xác thực của Laravel

Ghi chú
Không nên nhầm lẫn giữa bảo vệ và nhà cung cấp với "vai trò" và "quyền". Để tìm hiểu thêm về việc ủy ​​quyền hành động của người dùng thông qua quyền, vui lòng tham khảo tài liệu ủy quyền

Bộ công cụ dành cho người mới bắt đầu

Bạn muốn bắt đầu nhanh? . Sau khi di chuyển cơ sở dữ liệu của bạn, hãy điều hướng trình duyệt của bạn đến

Route::get['/flights', function [] {

// Only authenticated users may access this route...

8 hoặc bất kỳ URL nào khác được chỉ định cho ứng dụng của bạn. Bộ công cụ khởi động sẽ chăm sóc giàn giáo cho toàn bộ hệ thống xác thực của bạn

Ngay cả khi bạn chọn không sử dụng bộ công cụ khởi động trong ứng dụng Laravel cuối cùng của mình, việc cài đặt bộ công cụ khởi động có thể là một cơ hội tuyệt vời để tìm hiểu cách triển khai tất cả chức năng xác thực của Laravel trong một dự án Laravel thực tế. Vì Laravel Breeze tạo bộ điều khiển xác thực, định tuyến và chế độ xem cho bạn, nên bạn có thể kiểm tra mã trong các tệp này để tìm hiểu cách triển khai các tính năng xác thực của Laravel

Cân nhắc cơ sở dữ liệu

Theo mặc định, Laravel bao gồm một

Route::get['/flights', function [] {

// Only authenticated users may access this route...

9 Eloquent model trong thư mục

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

0 của bạn. Mô hình này có thể được sử dụng với trình điều khiển xác thực Eloquent mặc định. Nếu ứng dụng của bạn không sử dụng Eloquent, bạn có thể sử dụng nhà cung cấp xác thực

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

1 sử dụng trình tạo truy vấn Laravel

Khi xây dựng lược đồ cơ sở dữ liệu cho mô hình

Route::get['/flights', function [] {

// Only authenticated users may access this route...

9, đảm bảo cột mật khẩu có độ dài ít nhất 60 ký tự. Tất nhiên, việc di chuyển bảng

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

3 được bao gồm trong các ứng dụng Laravel mới đã tạo một cột vượt quá độ dài này

Ngoài ra, bạn nên xác minh rằng bảng

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

3 [hoặc tương đương] của bạn có chứa một cột chuỗi

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

5 không thể rỗng gồm 100 ký tự. Cột này sẽ được sử dụng để lưu trữ mã thông báo cho người dùng chọn tùy chọn "nhớ tôi" khi đăng nhập vào ứng dụng của bạn. Một lần nữa, việc di chuyển bảng

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

3 mặc định được bao gồm trong các ứng dụng Laravel mới đã chứa cột này

Tổng quan hệ sinh thái

Laravel cung cấp một số gói liên quan đến xác thực. Trước khi tiếp tục, chúng ta sẽ xem xét hệ sinh thái xác thực chung trong Laravel và thảo luận về mục đích của từng gói

Trước tiên, hãy xem xét cách xác thực hoạt động. Khi sử dụng trình duyệt web, người dùng sẽ cung cấp tên người dùng và mật khẩu của họ thông qua biểu mẫu đăng nhập. Nếu những thông tin đăng nhập này là chính xác, ứng dụng sẽ lưu trữ thông tin về người dùng được xác thực trong phiên của người dùng. Cookie được cấp cho trình duyệt chứa ID phiên để các yêu cầu tiếp theo đối với ứng dụng có thể liên kết người dùng với đúng phiên. Sau khi nhận được cookie phiên, ứng dụng sẽ truy xuất dữ liệu phiên dựa trên ID phiên, lưu ý rằng thông tin xác thực đã được lưu trữ trong phiên và sẽ coi người dùng là "được xác thực"

Khi một dịch vụ từ xa cần xác thực để truy cập API, cookie thường không được sử dụng để xác thực vì không có trình duyệt web. Thay vào đó, dịch vụ từ xa sẽ gửi mã thông báo API tới API theo từng yêu cầu. Ứng dụng có thể xác thực mã thông báo đến dựa trên bảng mã thông báo API hợp lệ và "xác thực" yêu cầu do người dùng liên kết với mã thông báo API đó thực hiện

Dịch vụ xác thực trình duyệt tích hợp của Laravel

Laravel bao gồm các dịch vụ phiên và xác thực tích hợp thường được truy cập thông qua các mặt tiền

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

7 và

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

8. Các tính năng này cung cấp xác thực dựa trên cookie cho các yêu cầu được bắt đầu từ trình duyệt web. Chúng cung cấp các phương thức cho phép bạn xác minh thông tin đăng nhập của người dùng và xác thực người dùng. Ngoài ra, các dịch vụ này sẽ tự động lưu trữ dữ liệu xác thực phù hợp trong phiên của người dùng và cấp cookie phiên của người dùng. Phần thảo luận về cách sử dụng các dịch vụ này có trong tài liệu này

Bộ công cụ dành cho người mới bắt đầu ứng dụng

Như đã thảo luận trong tài liệu này, bạn có thể tương tác với các dịch vụ xác thực này theo cách thủ công để xây dựng lớp xác thực của riêng ứng dụng của bạn. Tuy nhiên, để giúp bạn bắt đầu nhanh hơn, chúng tôi đã phát hành các gói miễn phí cung cấp nền tảng hiện đại, mạnh mẽ cho toàn bộ lớp xác thực. Các gói này là , , và Laravel Fortify

Laravel Breeze là một triển khai đơn giản, tối thiểu tất cả các tính năng xác thực của Laravel, bao gồm đăng nhập, đăng ký, đặt lại mật khẩu, xác minh email và xác nhận mật khẩu. Lớp xem của Laravel Breeze bao gồm các mẫu Blade đơn giản được tạo kiểu bằng Tailwind CSS. Để bắt đầu, hãy xem tài liệu về bộ khởi động ứng dụng của Laravel

Laravel Fortify là phần phụ trợ xác thực không đầu dành cho Laravel, triển khai nhiều tính năng có trong tài liệu này, bao gồm xác thực dựa trên cookie cũng như các tính năng khác như xác thực hai yếu tố và xác minh email. Fortify cung cấp phụ trợ xác thực cho Laravel Jetstream hoặc có thể được sử dụng độc lập kết hợp với Laravel Sanctum để cung cấp xác thực cho một SPA cần xác thực với Laravel

Laravel Jetstream là một bộ khởi động ứng dụng mạnh mẽ sử dụng và hiển thị các dịch vụ xác thực của Laravel Fortify với giao diện người dùng hiện đại, đẹp mắt được hỗ trợ bởi Tailwind CSS, Livewire và/hoặc Inertia. Laravel Jetstream bao gồm hỗ trợ tùy chọn cho xác thực hai yếu tố, hỗ trợ nhóm, quản lý phiên trình duyệt, quản lý hồ sơ và tích hợp sẵn với Laravel Sanctum để cung cấp xác thực mã thông báo API. Các dịch vụ xác thực API của Laravel được thảo luận bên dưới

Dịch vụ xác thực API của Laravel

Laravel cung cấp hai gói tùy chọn để hỗ trợ bạn quản lý mã thông báo API và xác thực các yêu cầu được thực hiện bằng mã thông báo API. Hộ chiếu và Sanctum. Xin lưu ý rằng các thư viện này và thư viện xác thực dựa trên cookie tích hợp của Laravel không loại trừ lẫn nhau. Các thư viện này chủ yếu tập trung vào xác thực mã thông báo API trong khi các dịch vụ xác thực tích hợp tập trung vào xác thực trình duyệt dựa trên cookie. Nhiều ứng dụng sẽ sử dụng cả dịch vụ xác thực dựa trên cookie tích hợp của Laravel và một trong các gói xác thực API của Laravel

Hộ chiếu

Hộ chiếu là nhà cung cấp xác thực OAuth2, cung cấp nhiều "loại cấp" OAuth2 cho phép bạn phát hành nhiều loại mã thông báo khác nhau. Nói chung, đây là gói mạnh mẽ và phức tạp để xác thực API. Tuy nhiên, hầu hết các ứng dụng không yêu cầu các tính năng phức tạp do thông số OAuth2 cung cấp, điều này có thể gây nhầm lẫn cho cả người dùng và nhà phát triển. Ngoài ra, trước đây các nhà phát triển đã nhầm lẫn về cách xác thực ứng dụng SPA hoặc ứng dụng di động bằng cách sử dụng nhà cung cấp xác thực OAuth2 như Passport

thánh địa

Để đối phó với sự phức tạp của OAuth2 và sự nhầm lẫn của nhà phát triển, chúng tôi đã bắt đầu xây dựng gói xác thực đơn giản hơn, hợp lý hơn, có thể xử lý cả yêu cầu web của bên thứ nhất từ ​​trình duyệt web và yêu cầu API thông qua mã thông báo. Mục tiêu này đã được hiện thực hóa với việc phát hành Laravel Sanctum, được coi là gói xác thực được khuyến nghị và ưu tiên cho các ứng dụng sẽ cung cấp giao diện người dùng web của bên thứ nhất ngoài API hoặc sẽ được cung cấp bởi ứng dụng một trang [

Laravel Sanctum là gói xác thực web/API lai có thể quản lý toàn bộ quy trình xác thực của ứng dụng của bạn. Điều này là có thể bởi vì khi các ứng dụng dựa trên Sanctum nhận được yêu cầu, trước tiên, Sanctum sẽ xác định xem yêu cầu đó có bao gồm cookie phiên tham chiếu phiên được xác thực hay không. Sanctum thực hiện điều này bằng cách gọi các dịch vụ xác thực tích hợp sẵn của Laravel mà chúng ta đã thảo luận trước đó. Nếu yêu cầu không được xác thực thông qua cookie phiên, Sanctum sẽ kiểm tra yêu cầu về mã thông báo API. Nếu có mã thông báo API, Sanctum sẽ xác thực yêu cầu bằng mã thông báo đó. Để tìm hiểu thêm về quy trình này, vui lòng tham khảo tài liệu của Sanctum

Laravel Sanctum là gói API mà chúng tôi đã chọn để đưa vào bộ khởi động ứng dụng Laravel Jetstream vì chúng tôi tin rằng nó phù hợp nhất với phần lớn nhu cầu xác thực của ứng dụng web

Tóm tắt & Chọn ngăn xếp của bạn

Tóm lại, nếu ứng dụng của bạn sẽ được truy cập bằng trình duyệt và bạn đang xây dựng một ứng dụng Laravel nguyên khối, thì ứng dụng của bạn sẽ sử dụng các dịch vụ xác thực tích hợp của Laravel

Tiếp theo, nếu ứng dụng của bạn cung cấp API sẽ được bên thứ ba sử dụng, bạn sẽ chọn giữa Hộ chiếu hoặc Sanctum để cung cấp xác thực mã thông báo API cho ứng dụng của mình. Nói chung, Sanctum nên được ưu tiên khi có thể vì đây là giải pháp đơn giản, hoàn chỉnh để xác thực API, xác thực SPA và xác thực di động, bao gồm hỗ trợ cho "phạm vi" hoặc "khả năng"

Nếu bạn đang xây dựng một ứng dụng một trang [SPA] sẽ được cung cấp bởi phần phụ trợ của Laravel, bạn nên sử dụng Laravel Sanctum. Khi sử dụng Sanctum, bạn sẽ cần hoặc sử dụng Laravel Fortify như một dịch vụ phụ trợ xác thực không đầu cung cấp các tuyến đường và bộ điều khiển cho các tính năng như đăng ký, đặt lại mật khẩu, xác minh email, v.v.

Hộ chiếu có thể được chọn khi ứng dụng của bạn thực sự cần tất cả các tính năng được cung cấp bởi đặc tả OAuth2

Và, nếu bạn muốn bắt đầu nhanh chóng, chúng tôi vui lòng giới thiệu một cách nhanh chóng để bắt đầu một ứng dụng Laravel mới đã sử dụng ngăn xếp xác thực ưa thích của chúng tôi về các dịch vụ xác thực tích hợp sẵn của Laravel và Laravel Sanctum

Bắt đầu xác thực nhanh

Cảnh báo
Phần tài liệu này thảo luận về việc xác thực người dùng thông qua bộ khởi động ứng dụng Laravel, bao gồm khung giao diện người dùng để giúp bạn bắt đầu nhanh chóng. Nếu bạn muốn tích hợp trực tiếp với các hệ thống xác thực của Laravel, hãy xem tài liệu về

Cài đặt Bộ khởi động

Trước tiên, bạn nên cài đặt bộ khởi động ứng dụng Laravel. Bộ công cụ khởi động hiện tại của chúng tôi, Laravel Breeze và Laravel Jetstream, cung cấp các điểm khởi đầu được thiết kế đẹp mắt để kết hợp xác thực vào ứng dụng Laravel mới của bạn

Laravel Breeze là một triển khai tối thiểu, đơn giản cho tất cả các tính năng xác thực của Laravel, bao gồm đăng nhập, đăng ký, đặt lại mật khẩu, xác minh email và xác nhận mật khẩu. Lớp xem của Laravel Breeze được tạo thành từ các mẫu Blade đơn giản được tạo kiểu bằng Tailwind CSS. Breeze cũng cung cấp tùy chọn giàn giáo dựa trên quán tính bằng Vue hoặc React

Laravel Jetstream là một bộ công cụ khởi động ứng dụng mạnh mẽ hơn bao gồm hỗ trợ giàn giáo cho ứng dụng của bạn với Livewire hoặc Inertia và Vue. Ngoài ra, Jetstream có tính năng hỗ trợ tùy chọn cho xác thực hai yếu tố, nhóm, quản lý hồ sơ, quản lý phiên trình duyệt, hỗ trợ API qua Laravel Sanctum, xóa tài khoản, v.v.

Truy xuất người dùng đã xác thực

Sau khi cài đặt bộ khởi động xác thực và cho phép người dùng đăng ký và xác thực với ứng dụng của bạn, bạn sẽ thường xuyên phải tương tác với người dùng hiện được xác thực. Trong khi xử lý một yêu cầu gửi đến, bạn có thể truy cập người dùng được xác thực thông qua phương thức

Route::get['/flights', function [] {

// Only authenticated users may access this route...

}]->middleware['auth:admin'];

0 của mặt tiền

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

7

use Illuminate\Support\Facades\Auth;

// Retrieve the currently authenticated user...

// Retrieve the currently authenticated user's ID...

Ngoài ra, sau khi người dùng được xác thực, bạn có thể truy cập người dùng được xác thực thông qua phiên bản

Route::get['/flights', function [] {

// Only authenticated users may access this route...

}]->middleware['auth:admin'];

1. Hãy nhớ rằng, các lớp gợi ý kiểu sẽ tự động được đưa vào các phương thức điều khiển của bạn. Bằng cách gợi ý kiểu đối tượng

Route::get['/flights', function [] {

// Only authenticated users may access this route...

}]->middleware['auth:admin'];

1, bạn có thể có quyền truy cập thuận tiện vào người dùng được xác thực từ bất kỳ phương thức điều khiển nào trong ứng dụng của bạn thông qua phương thức

Route::get['/flights', function [] {

// Only authenticated users may access this route...

}]->middleware['auth:admin'];

0 của yêu cầu

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

Xác định xem người dùng hiện tại có được xác thực hay không

Để xác định xem người dùng thực hiện yêu cầu HTTP đến có được xác thực hay không, bạn có thể sử dụng phương thức

Route::get['/flights', function [] {

// Only authenticated users may access this route...

}]->middleware['auth:admin'];

4 trên mặt tiền

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

7. Phương thức này sẽ trả về

Route::get['/flights', function [] {

// Only authenticated users may access this route...

}]->middleware['auth:admin'];

6 nếu người dùng được xác thực

use Illuminate\Support\Facades\Auth;

// The user is logged in...

Ghi chú
Mặc dù có thể xác định xem người dùng có được xác thực hay không bằng phương pháp

Route::get['/flights', function [] {

// Only authenticated users may access this route...

}]->middleware['auth:admin'];

4, thông thường bạn sẽ sử dụng phần mềm trung gian để xác minh rằng người dùng đã được xác thực trước khi cho phép người dùng truy cập vào một số tuyến/bộ điều khiển nhất định. Để tìm hiểu thêm về điều này, hãy xem tài liệu về

Bảo vệ tuyến đường

Phần mềm trung gian tuyến đường có thể được sử dụng để chỉ cho phép người dùng được xác thực truy cập vào một tuyến đường nhất định. Laravel cung cấp một phần mềm trung gian

Route::get['/flights', function [] {

// Only authenticated users may access this route...

}]->middleware['auth:admin'];

8, tham chiếu đến lớp

Route::get['/flights', function [] {

// Only authenticated users may access this route...

}]->middleware['auth:admin'];

9. Vì phần mềm trung gian này đã được đăng ký trong nhân HTTP của ứng dụng của bạn, tất cả những gì bạn cần làm là đính kèm phần mềm trung gian vào định nghĩa tuyến đường

Route::get['/flights', function [] {

// Only authenticated users may access this route...

Chuyển hướng người dùng chưa được xác thực

Khi phần mềm trung gian

Route::get['/flights', function [] {

// Only authenticated users may access this route...

}]->middleware['auth:admin'];

8 phát hiện người dùng chưa được xác thực, nó sẽ chuyển hướng người dùng đến

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

1. Bạn có thể sửa đổi hành vi này bằng cách cập nhật hàm

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

2 trong tệp

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

3 của ứng dụng của bạn

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

Chỉ định một người bảo vệ

Khi đính kèm phần mềm trung gian

Route::get['/flights', function [] {

// Only authenticated users may access this route...

}]->middleware['auth:admin'];

8 vào một tuyến đường, bạn cũng có thể chỉ định "bảo vệ" nào sẽ được sử dụng để xác thực người dùng. Bộ phận bảo vệ được chỉ định phải tương ứng với một trong các khóa trong mảng

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

5 của tệp cấu hình

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

6 của bạn

Route::get['/flights', function [] {

// Only authenticated users may access this route...

}]->middleware['auth:admin'];

Điều chỉnh đăng nhập

Nếu bạn đang sử dụng bộ khởi động Laravel Breeze hoặc Laravel Jetstream, giới hạn tốc độ sẽ tự động được áp dụng cho các lần thử đăng nhập. Theo mặc định, người dùng sẽ không thể đăng nhập trong một phút nếu họ không cung cấp thông tin đăng nhập chính xác sau nhiều lần thử. Điều chỉnh là duy nhất đối với tên người dùng/địa chỉ email và địa chỉ IP của họ

Ghi chú
Nếu bạn muốn xếp hạng giới hạn các tuyến đường khác trong ứng dụng của mình, hãy xem

Xác thực người dùng theo cách thủ công

Bạn không bắt buộc phải sử dụng giàn giáo xác thực có trong bộ khởi động ứng dụng của Laravel. Nếu bạn chọn không sử dụng giàn giáo này, bạn sẽ cần trực tiếp quản lý xác thực người dùng bằng cách sử dụng các lớp xác thực của Laravel. Đừng lo lắng, đó là một cinch

Chúng tôi sẽ truy cập các dịch vụ xác thực của Laravel thông qua mặt tiền

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

7, vì vậy chúng tôi cần đảm bảo nhập mặt tiền

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

7 ở đầu lớp. Tiếp theo, hãy xem phương pháp

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

9. Phương pháp

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

9 thường được sử dụng để xử lý các nỗ lực xác thực từ biểu mẫu "đăng nhập" của ứng dụng của bạn. Nếu xác thực thành công, bạn nên tạo lại phiên của người dùng để tránh cố định phiên

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

Phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

9 chấp nhận một mảng các cặp khóa/giá trị làm đối số đầu tiên của nó. Các giá trị trong mảng sẽ được sử dụng để tìm người dùng trong bảng cơ sở dữ liệu của bạn. Vì vậy, trong ví dụ trên, người dùng sẽ được lấy giá trị của cột

if [Auth::attempt[['email' => $email, 'password' => $password, 'active' => 1]]] {

// Authentication was successful...

2. Nếu người dùng được tìm thấy, mật khẩu băm được lưu trữ trong cơ sở dữ liệu sẽ được so sánh với giá trị

if [Auth::attempt[['email' => $email, 'password' => $password, 'active' => 1]]] {

// Authentication was successful...

3 được truyền cho phương thức thông qua mảng. Bạn không nên băm giá trị

if [Auth::attempt[['email' => $email, 'password' => $password, 'active' => 1]]] {

// Authentication was successful...

3 của yêu cầu đến, vì khung sẽ tự động băm giá trị trước khi so sánh nó với mật khẩu được băm trong cơ sở dữ liệu. Một phiên xác thực sẽ được bắt đầu cho người dùng nếu hai mật khẩu được băm khớp với nhau

Hãy nhớ rằng, các dịch vụ xác thực của Laravel sẽ truy xuất người dùng từ cơ sở dữ liệu của bạn dựa trên cấu hình "nhà cung cấp" bảo vệ xác thực của bạn. Trong tệp cấu hình

Route::get['/flights', function [] {

// Only authenticated users may access this route...

7 mặc định, nhà cung cấp người dùng Eloquent được chỉ định và nó được hướng dẫn sử dụng mô hình

Route::get['/flights', function [] {

// Only authenticated users may access this route...

9 khi truy xuất người dùng. Bạn có thể thay đổi các giá trị này trong tệp cấu hình của mình dựa trên nhu cầu của ứng dụng của bạn

Phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

9 sẽ trả về

Route::get['/flights', function [] {

// Only authenticated users may access this route...

}]->middleware['auth:admin'];

6 nếu xác thực thành công. Nếu không,

if [Auth::attempt[['email' => $email, 'password' => $password, 'active' => 1]]] {

// Authentication was successful...

9 sẽ được trả lại

Phương thức

fn [$query] => $query->has['activeSubscription'],

// Authentication was successful...

0 do bộ chuyển hướng của Laravel cung cấp sẽ chuyển hướng người dùng đến URL mà họ đang cố truy cập trước khi bị chặn bởi phần mềm trung gian xác thực. Một URI dự phòng có thể được cung cấp cho phương thức này trong trường hợp không có đích dự kiến

Chỉ định các điều kiện bổ sung

Nếu muốn, bạn cũng có thể thêm các điều kiện truy vấn bổ sung vào truy vấn xác thực ngoài email và mật khẩu của người dùng. Để thực hiện điều này, chúng ta có thể chỉ cần thêm các điều kiện truy vấn vào mảng được truyền cho phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

9. Ví dụ: chúng tôi có thể xác minh rằng người dùng được đánh dấu là "đang hoạt động"

if [Auth::attempt[['email' => $email, 'password' => $password, 'active' => 1]]] {

// Authentication was successful...

Đối với các điều kiện truy vấn phức tạp, bạn có thể cung cấp một đóng trong mảng thông tin đăng nhập của mình. Việc đóng này sẽ được gọi với phiên bản truy vấn, cho phép bạn tùy chỉnh truy vấn dựa trên nhu cầu của ứng dụng của bạn

fn [$query] => $query->has['activeSubscription'],

// Authentication was successful...

Cảnh báo
Trong những ví dụ này,

if [Auth::attempt[['email' => $email, 'password' => $password, 'active' => 1]]] {

// Authentication was successful...

2 không phải là một lựa chọn bắt buộc, nó chỉ được dùng làm ví dụ. Bạn nên sử dụng bất kỳ tên cột nào tương ứng với "tên người dùng" trong bảng cơ sở dữ liệu của mình

Phương thức

fn [$query] => $query->has['activeSubscription'],

// Authentication was successful...

3, nhận đóng là đối số thứ hai của nó, có thể được sử dụng để thực hiện kiểm tra rộng rãi hơn về người dùng tiềm năng trước khi thực sự xác thực người dùng. Việc đóng cửa nhận được người dùng tiềm năng và sẽ trả về

Route::get['/flights', function [] {

// Only authenticated users may access this route...

}]->middleware['auth:admin'];

6 hoặc

if [Auth::attempt[['email' => $email, 'password' => $password, 'active' => 1]]] {

// Authentication was successful...

9 để cho biết liệu người dùng có thể được xác thực hay không

return $user->isNotBanned[];

// Authentication was successful...

Truy cập các trường hợp bảo vệ cụ thể

Thông qua phương thức

fn [$query] => $query->has['activeSubscription'],

// Authentication was successful...

7 của mặt tiền

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

7, bạn có thể chỉ định phiên bản bảo vệ nào bạn muốn sử dụng khi xác thực người dùng. Điều này cho phép bạn quản lý xác thực cho các phần riêng biệt của ứng dụng bằng cách sử dụng các mô hình hoặc bảng người dùng có thể xác thực hoàn toàn riêng biệt

Tên bảo vệ được truyền cho phương thức

fn [$query] => $query->has['activeSubscription'],

// Authentication was successful...

7 phải tương ứng với một trong các bảo vệ được định cấu hình trong tệp cấu hình

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

6 của bạn

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

0

ghi nhớ người dùng

Nhiều ứng dụng web cung cấp hộp kiểm "nhớ tôi" trên biểu mẫu đăng nhập của họ. Nếu bạn muốn cung cấp chức năng "nhớ tôi" trong ứng dụng của mình, bạn có thể chuyển một giá trị boolean làm đối số thứ hai cho phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

9

Khi giá trị này là

Route::get['/flights', function [] {

// Only authenticated users may access this route...

}]->middleware['auth:admin'];

6, Laravel sẽ giữ cho người dùng được xác thực vô thời hạn hoặc cho đến khi họ đăng xuất thủ công. Bảng

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

3 của bạn phải bao gồm cột chuỗi

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

5, cột này sẽ được sử dụng để lưu trữ mã thông báo "nhớ tôi". Việc di chuyển bảng

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

3 đi kèm với các ứng dụng Laravel mới đã bao gồm cột này

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

1

Nếu ứng dụng của bạn cung cấp chức năng "nhớ tôi", bạn có thể sử dụng phương pháp

return $user->isNotBanned[];

// Authentication was successful...

5 để xác định xem người dùng hiện được xác thực có được xác thực bằng cookie "nhớ tôi" hay không

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

2

Các phương thức xác thực khác

Xác thực một trường hợp người dùng

Nếu bạn cần đặt một phiên bản người dùng hiện tại làm người dùng hiện được xác thực, bạn có thể chuyển phiên bản người dùng đó sang phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

1 của mặt tiền

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

7. Phiên bản người dùng nhất định phải là một triển khai của hợp đồng

return $user->isNotBanned[];

// Authentication was successful...

8. Mô hình

Route::get['/flights', function [] {

// Only authenticated users may access this route...

9 đi kèm với Laravel đã triển khai giao diện này. Phương pháp xác thực này hữu ích khi bạn đã có một phiên bản người dùng hợp lệ, chẳng hạn như ngay sau khi người dùng đăng ký với ứng dụng của bạn

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

3

Bạn có thể chuyển một giá trị boolean làm đối số thứ hai cho phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

1. Giá trị này cho biết liệu chức năng "nhớ tôi" có được mong muốn cho phiên xác thực hay không. Hãy nhớ rằng, điều này có nghĩa là phiên sẽ được xác thực vô thời hạn hoặc cho đến khi người dùng đăng xuất khỏi ứng dụng theo cách thủ công

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

4

Nếu cần, bạn có thể chỉ định một bảo vệ xác thực trước khi gọi phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

1

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

5

Xác thực người dùng bằng ID

Để xác thực người dùng bằng khóa chính của bản ghi cơ sở dữ liệu của họ, bạn có thể sử dụng phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

02. Phương thức này chấp nhận khóa chính của người dùng mà bạn muốn xác thực

Bạn có thể chuyển một giá trị boolean làm đối số thứ hai cho phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

02. Giá trị này cho biết liệu chức năng "nhớ tôi" có được mong muốn cho phiên xác thực hay không. Hãy nhớ rằng, điều này có nghĩa là phiên sẽ được xác thực vô thời hạn hoặc cho đến khi người dùng đăng xuất khỏi ứng dụng theo cách thủ công

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

6

Xác thực người dùng một lần

Bạn có thể sử dụng phương pháp

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

04 để xác thực người dùng với ứng dụng cho một yêu cầu duy nhất. Sẽ không có phiên hoặc cookie nào được sử dụng khi gọi phương thức này

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

7

Xác thực cơ bản HTTP

Xác thực cơ bản HTTP cung cấp một cách nhanh chóng để xác thực người dùng ứng dụng của bạn mà không cần thiết lập trang "đăng nhập" chuyên dụng. Để bắt đầu, hãy đính kèm phần mềm trung gian

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

05 vào một tuyến đường. Phần mềm trung gian

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

05 được bao gồm trong khuôn khổ Laravel, vì vậy bạn không cần phải xác định nó

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

8

Khi phần mềm trung gian đã được gắn vào tuyến đường, bạn sẽ tự động được nhắc nhập thông tin đăng nhập khi truy cập tuyến đường trong trình duyệt của mình. Theo mặc định, phần mềm trung gian

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

05 sẽ coi cột

if [Auth::attempt[['email' => $email, 'password' => $password, 'active' => 1]]] {

// Authentication was successful...

2 trên bảng cơ sở dữ liệu

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

3 của bạn là "tên người dùng" của người dùng

Lưu ý về FastCGI

Nếu bạn đang sử dụng PHP FastCGI và Apache để phục vụ ứng dụng Laravel của mình, xác thực HTTP Basic có thể không hoạt động chính xác. Để khắc phục những sự cố này, các dòng sau có thể được thêm vào tệp

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

10 của ứng dụng của bạn

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

9

Xác thực cơ bản HTTP không trạng thái

Bạn cũng có thể sử dụng Xác thực cơ bản HTTP mà không cần đặt cookie định danh người dùng trong phiên. Điều này chủ yếu hữu ích nếu bạn chọn sử dụng Xác thực HTTP để xác thực các yêu cầu đối với API của ứng dụng của bạn. Để thực hiện điều này, hãy xác định một phần mềm trung gian gọi phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

11. Nếu không có phản hồi nào được trả về bằng phương pháp

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

11, yêu cầu có thể được chuyển tiếp vào ứng dụng

use Illuminate\Support\Facades\Auth;

// The user is logged in...

0

Tiếp theo, và đính kèm nó vào một tuyến đường

use Illuminate\Support\Facades\Auth;

// The user is logged in...

1

Thoát ra

Để đăng xuất thủ công người dùng khỏi ứng dụng của bạn, bạn có thể sử dụng phương pháp

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

13 được cung cấp bởi mặt tiền

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

7. Thao tác này sẽ xóa thông tin xác thực khỏi phiên của người dùng để các yêu cầu tiếp theo không được xác thực

Ngoài việc gọi phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

13, bạn nên vô hiệu hóa phiên của người dùng và tạo lại mã thông báo CSRF của họ. Sau khi đăng xuất người dùng, thông thường bạn sẽ chuyển hướng người dùng đến thư mục gốc của ứng dụng của bạn

use Illuminate\Support\Facades\Auth;

// The user is logged in...

2

Vô hiệu hóa phiên trên các thiết bị khác

Laravel cũng cung cấp cơ chế vô hiệu hóa và "đăng xuất" phiên của người dùng đang hoạt động trên các thiết bị khác mà không làm mất hiệu lực phiên trên thiết bị hiện tại của họ. Tính năng này thường được sử dụng khi người dùng đang thay đổi hoặc cập nhật mật khẩu của họ và bạn muốn vô hiệu hóa các phiên trên thiết bị khác trong khi vẫn xác thực thiết bị hiện tại

Trước khi bắt đầu, bạn nên đảm bảo rằng phần mềm trung gian

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

16 được bao gồm trên các tuyến sẽ nhận xác thực phiên. Thông thường, bạn nên đặt phần mềm trung gian này trên định nghĩa nhóm tuyến đường để nó có thể được áp dụng cho phần lớn các tuyến đường của ứng dụng của bạn. Theo mặc định, phần mềm trung gian

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

17 có thể được gắn vào một tuyến đường bằng cách sử dụng khóa phần mềm trung gian tuyến đường

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

18 như được xác định trong nhân HTTP của ứng dụng của bạn

use Illuminate\Support\Facades\Auth;

// The user is logged in...

3

Sau đó, bạn có thể sử dụng phương pháp

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

19 được cung cấp bởi mặt tiền

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

7. Phương pháp này yêu cầu người dùng xác nhận mật khẩu hiện tại của họ, mà ứng dụng của bạn sẽ chấp nhận thông qua biểu mẫu nhập liệu

use Illuminate\Support\Facades\Auth;

// The user is logged in...

4

Khi phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

19 được gọi, các phiên khác của người dùng sẽ bị vô hiệu hoàn toàn, nghĩa là họ sẽ bị "đăng xuất" khỏi tất cả các bảo vệ mà họ đã được xác thực trước đó

Xác nhận mật khẩu

Trong khi xây dựng ứng dụng của bạn, đôi khi bạn có thể có các hành động yêu cầu người dùng xác nhận mật khẩu của họ trước khi hành động được thực hiện hoặc trước khi người dùng được chuyển hướng đến khu vực nhạy cảm của ứng dụng. Laravel bao gồm phần mềm trung gian tích hợp để làm cho quá trình này trở nên dễ dàng. Việc triển khai tính năng này sẽ yêu cầu bạn xác định hai tuyến đường. một tuyến để hiển thị chế độ xem yêu cầu người dùng xác nhận mật khẩu của họ và một tuyến khác để xác nhận rằng mật khẩu hợp lệ và chuyển hướng người dùng đến đích dự định của họ

Ghi chú
Tài liệu sau đây thảo luận về cách tích hợp trực tiếp với các tính năng xác nhận mật khẩu của Laravel;

Cấu hình

Sau khi xác nhận mật khẩu của họ, người dùng sẽ không được yêu cầu xác nhận lại mật khẩu của họ trong ba giờ. Tuy nhiên, bạn có thể định cấu hình khoảng thời gian trước khi người dùng được nhắc nhập lại mật khẩu của họ bằng cách thay đổi giá trị của giá trị cấu hình

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

22 trong tệp cấu hình

Route::get['/flights', function [] {

// Only authenticated users may access this route...

7 của ứng dụng của bạn

Lộ trình

Mẫu xác nhận mật khẩu

Đầu tiên, chúng tôi sẽ xác định tuyến đường để hiển thị chế độ xem yêu cầu người dùng xác nhận mật khẩu của họ

use Illuminate\Support\Facades\Auth;

// The user is logged in...

5

Như bạn có thể mong đợi, chế độ xem được trả về bởi tuyến đường này phải có biểu mẫu chứa trường

if [Auth::attempt[['email' => $email, 'password' => $password, 'active' => 1]]] {

// Authentication was successful...

3. Ngoài ra, vui lòng bao gồm văn bản trong chế độ xem giải thích rằng người dùng đang vào khu vực được bảo vệ của ứng dụng và phải xác nhận mật khẩu của họ

Xác nhận mật khẩu

Tiếp theo, chúng tôi sẽ xác định một tuyến đường sẽ xử lý yêu cầu biểu mẫu từ chế độ xem "xác nhận mật khẩu". Tuyến đường này sẽ chịu trách nhiệm xác thực mật khẩu và chuyển hướng người dùng đến đích dự định của họ

use Illuminate\Support\Facades\Auth;

// The user is logged in...

6

Trước khi tiếp tục, hãy xem xét tuyến đường này chi tiết hơn. Đầu tiên, trường

if [Auth::attempt[['email' => $email, 'password' => $password, 'active' => 1]]] {

// Authentication was successful...

3 của yêu cầu được xác định là thực sự khớp với mật khẩu của người dùng được xác thực. Nếu mật khẩu hợp lệ, chúng tôi cần thông báo cho phiên làm việc của Laravel rằng người dùng đã xác nhận mật khẩu của họ. Phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

26 sẽ đặt dấu thời gian trong phiên của người dùng mà Laravel có thể sử dụng để xác định thời điểm người dùng xác nhận mật khẩu của họ lần cuối. Cuối cùng, chúng tôi có thể chuyển hướng người dùng đến đích dự định của họ

Bảo vệ tuyến đường

Bạn nên đảm bảo rằng bất kỳ tuyến đường nào thực hiện hành động yêu cầu xác nhận mật khẩu gần đây đều được chỉ định phần mềm trung gian

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

27. Phần mềm trung gian này được bao gồm trong cài đặt mặc định của Laravel và sẽ tự động lưu trữ đích dự định của người dùng trong phiên để người dùng có thể được chuyển hướng đến vị trí đó sau khi xác nhận mật khẩu của họ. Sau khi lưu trữ đích dự định của người dùng trong phiên, phần mềm trung gian sẽ chuyển hướng người dùng đến

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

27

use Illuminate\Support\Facades\Auth;

// The user is logged in...

7

Thêm bảo vệ tùy chỉnh

Bạn có thể xác định các bộ bảo vệ xác thực của riêng mình bằng cách sử dụng phương pháp

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

29 trên mặt tiền

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

7. Bạn nên thực hiện cuộc gọi của mình theo phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

29 trong một nhà cung cấp dịch vụ. Vì Laravel đã giao hàng với một

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

32, chúng tôi có thể đặt mã trong nhà cung cấp đó

use Illuminate\Support\Facades\Auth;

// The user is logged in...

8

Như bạn có thể thấy trong ví dụ trên, cuộc gọi lại được chuyển đến phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

29 sẽ trả về một triển khai của

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

34. Giao diện này chứa một số phương thức bạn sẽ cần thực hiện để xác định một bộ bảo vệ tùy chỉnh. Khi bộ phận bảo vệ tùy chỉnh của bạn đã được xác định, bạn có thể tham chiếu bộ phận bảo vệ trong cấu hình

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

5 của tệp cấu hình

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

6 của bạn

Bảo vệ yêu cầu đóng cửa

Cách đơn giản nhất để triển khai hệ thống xác thực dựa trên yêu cầu HTTP tùy chỉnh là sử dụng phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

37. Phương pháp này cho phép bạn nhanh chóng xác định quy trình xác thực của mình bằng cách sử dụng một lần đóng

Để bắt đầu, hãy gọi phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

37 trong phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

39 của

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

32 của bạn. Phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

41 chấp nhận tên trình điều khiển xác thực làm đối số đầu tiên của nó. Tên này có thể là bất kỳ chuỗi nào mô tả bộ phận bảo vệ tùy chỉnh của bạn. Đối số thứ hai được truyền cho phương thức phải là một bao đóng nhận yêu cầu HTTP đến và trả về một phiên bản người dùng hoặc, nếu xác thực không thành công,

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

42

use Illuminate\Support\Facades\Auth;

// The user is logged in...

9

Khi trình điều khiển xác thực tùy chỉnh của bạn đã được xác định, bạn có thể định cấu hình nó làm trình điều khiển trong cấu hình

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

5 của tệp cấu hình

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

6

Route::get['/flights', function [] {

// Only authenticated users may access this route...

0

Cuối cùng, bạn có thể tham khảo bộ bảo vệ khi gán phần mềm trung gian xác thực cho một tuyến đường.

Route::get['/flights', function [] {

// Only authenticated users may access this route...

1

Thêm nhà cung cấp người dùng tùy chỉnh

Nếu bạn không sử dụng cơ sở dữ liệu quan hệ truyền thống để lưu trữ người dùng của mình, bạn sẽ cần mở rộng Laravel với nhà cung cấp người dùng xác thực của riêng bạn. Chúng tôi sẽ sử dụng phương pháp

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

45 trên mặt tiền

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

7 để xác định nhà cung cấp người dùng tùy chỉnh. Trình giải quyết của nhà cung cấp người dùng sẽ trả về một triển khai của

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

47

Route::get['/flights', function [] {

// Only authenticated users may access this route...

2

Sau khi bạn đã đăng ký nhà cung cấp bằng phương pháp

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

45, bạn có thể chuyển sang nhà cung cấp người dùng mới trong tệp cấu hình

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

6 của mình. Đầu tiên, xác định một

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

45 sử dụng trình điều khiển mới của bạn

Cuối cùng, bạn có thể tham khảo nhà cung cấp này trong cấu hình

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller

* Handle an authentication attempt.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function authenticate[Request $request]

$credentials = $request->validate[[

'email' => ['required', 'email'],

'password' => ['required'],

if [Auth::attempt[$credentials]] {

$request->session[]->regenerate[];

return redirect[]->intended['dashboard'];

return back[]->withErrors[[

'email' => 'The provided credentials do not match our records.',

5 của mình

Hợp đồng nhà cung cấp người dùng

Triển khai

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

47 chịu trách nhiệm tìm nạp triển khai

return $user->isNotBanned[];

// Authentication was successful...

8 ra khỏi hệ thống lưu trữ liên tục, chẳng hạn như MySQL, MongoDB, v.v. Hai giao diện này cho phép các cơ chế xác thực của Laravel tiếp tục hoạt động bất kể dữ liệu người dùng được lưu trữ như thế nào hoặc loại lớp nào được sử dụng để đại diện cho người dùng được xác thực

Chúng ta hãy xem hợp đồng

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

47

Route::get['/flights', function [] {

// Only authenticated users may access this route...

3

Hàm

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

55 thường nhận một khóa đại diện cho người dùng, chẳng hạn như ID tăng tự động từ cơ sở dữ liệu MySQL. Việc triển khai

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

56 khớp với ID sẽ được truy xuất và trả về theo phương thức

Hàm

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

57 truy xuất người dùng theo tên duy nhất của họ là

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

58 và "nhớ tôi"

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

59, thường được lưu trữ trong cột cơ sở dữ liệu như

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

5. Như với phương thức trước đó, việc triển khai

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

56 với giá trị mã thông báo phù hợp sẽ được trả về bằng phương thức này

Phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

62 cập nhật phiên bản

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

5 của phiên bản

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

63 với phiên bản mới

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

59. Một mã thông báo mới được chỉ định cho người dùng khi xác thực "nhớ tôi" thành công hoặc khi người dùng đăng xuất

Phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

66 nhận mảng thông tin đăng nhập được truyền cho phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

67 khi cố gắng xác thực bằng một ứng dụng. Sau đó, phương thức này sẽ "truy vấn" bộ lưu trữ liên tục cơ bản cho người dùng khớp với các thông tin xác thực đó. Thông thường, phương pháp này sẽ chạy truy vấn với điều kiện "ở đâu" để tìm kiếm bản ghi người dùng có "tên người dùng" khớp với giá trị của

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

68. Phương thức này sẽ trả về một triển khai của

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

56. Phương pháp này không nên cố gắng thực hiện bất kỳ xác thực hoặc xác thực mật khẩu nào

Phương pháp

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

70 nên so sánh

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

63 đã cho với

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

72 để xác thực người dùng. Ví dụ: phương pháp này thường sẽ sử dụng phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

73 để so sánh giá trị của

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

74 với giá trị của

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

75. Phương thức này sẽ trả về

Route::get['/flights', function [] {

// Only authenticated users may access this route...

}]->middleware['auth:admin'];

6 hoặc

if [Auth::attempt[['email' => $email, 'password' => $password, 'active' => 1]]] {

// Authentication was successful...

9 cho biết mật khẩu có hợp lệ hay không

Hợp đồng xác thực

Bây giờ chúng ta đã khám phá từng phương pháp trên

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

78, hãy xem hợp đồng

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

56. Hãy nhớ rằng, các nhà cung cấp người dùng nên trả về các triển khai của giao diện này từ các phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

55,

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

57 và

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

66

Route::get['/flights', function [] {

// Only authenticated users may access this route...

4

Giao diện này đơn giản. Phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

83 sẽ trả về tên của trường "khóa chính" của người dùng và phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

84 sẽ trả về "khóa chính" của người dùng. Khi sử dụng back-end MySQL, đây có thể là khóa chính tăng tự động được gán cho bản ghi người dùng. Phương thức

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

85 sẽ trả về mật khẩu được băm của người dùng

Giao diện này cho phép hệ thống xác thực hoạt động với bất kỳ lớp "người dùng" nào, bất kể bạn đang sử dụng lớp trừu tượng lưu trữ hoặc ORM nào. Theo mặc định, Laravel bao gồm một lớp

Route::get['/flights', function [] {

// Only authenticated users may access this route...

9 trong thư mục

* Get the path the user should be redirected to.

* @param \Illuminate\Http\Request $request

protected function redirectTo[$request]

0 thực hiện giao diện này

Sự kiện

Laravel gửi một loạt các sự kiện trong quá trình xác thực. Bạn có thể đính kèm người nghe với những sự kiện này trong

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FlightController extends Controller

* Update the flight information for an existing flight.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

88 của bạn

Làm cách nào để tạo thông tin đăng nhập và đăng ký trong laravel?

Bằng cách tạo Tệp đăng nhập và đăng ký của riêng chúng tôi bằng Cấu trúc MVC của Laravel .
BƯỚC 1. TẠO TRANG XEM ĐỂ ĐĂNG KÝ VÀ ĐĂNG NHẬP. Tạo các trang xem cho Trang đăng ký và Trang đăng nhập. .
BƯỚC 2. TẠO ĐƯỜNG ĐỂ XEM TỆP. .
BƯỚC 3. TẠO BỘ ĐIỀU KHIỂN. .
BƯỚC 4. TẠO TUYẾN CHO BỘ ĐIỀU KHIỂN. .
BƯỚC 5. TẠO MÔ HÌNH

Làm cách nào để tạo biểu mẫu đăng ký trong laravel?

Tùy chỉnh biểu mẫu đăng ký Laravel với các trường bổ sung .
Bước 1. Trước tiên hãy di chuyển để tạo một trường mới trong bảng cơ sở dữ liệu. .
Bước 2. Mở tệp trong trình chỉnh sửa và sửa đổi các hàm up[] và down[]. .
Bước 3. Sau đó, chạy di chuyển bằng cách làm theo lệnh
Bước 4. Chuyển đến tài nguyên/auth/đăng ký

Làm cách nào để đăng ký người dùng trong laravel?

Đăng nhập và đăng ký xác thực Laravel 9 bằng tên người dùng hoặc email .
Bước 1. Tạo ứng dụng Laravel
Bước 2. Thiết lập thông tin xác thực cơ sở dữ liệu
Bước 3. Mô hình thiết lập
Bước 4. Thiết lập bộ điều khiển đăng ký
Bước 5. Yêu cầu đăng ký thiết lập
Bước 6. Thiết lập bộ điều khiển đăng nhập
Bước 7. Thiết lập yêu cầu đăng nhập
Bước 8. Thiết lập bộ điều khiển đăng xuất

Chủ Đề