Nội dung chính
- 1 Xem Phản hồi json xác thực tùy chỉnh của Laravel 2024
- 2 Phương pháp xác thực
- 3 Dữ liệu xác thực
- 4 Quy tắc xác thực
- 5 Tùy chỉnh thông báo lỗi
- 6 Tùy chỉnh các thuộc tính xác thực
- 7 Xóa tài nguyên
- 8 Phương pháp trợ giúp
Xem Phản hồi json xác thực tùy chỉnh của Laravel 2024
CẬP NHẬT ngày 10 tháng 6 năm 2019. Tôi đã đăng bài viết này trên kênh Slack của LaravelUK và David T đã cho tôi một số phản hồi có giá trị
Bạn có thể buộc Laravel luôn chỉ trả về JSON bằng cách chỉ định tiêu đề Chấp nhận.
Gần đây tôi đã sử dụng Xác thực yêu cầu biểu mẫu của Laravel thay vì sử dụng xác thực nội tuyến. Tôi thấy sẽ tốt hơn nhiều nếu tách mọi thứ thành các lớp riêng của chúng càng nhiều càng tốt, vì vậy tôi rất hài lòng khi điều này được đưa vào khung cốt lõi
Nếu bạn giống tôi và bạn không thể bỏ thói quen viết xác thực nội tuyến thì đừng lo lắng vì Jason McCreary tuyệt vời đã thêm một tính năng tuyệt vời vào Laravel Code Fixer Shift để chuyển đổi xác thực bộ điều khiển nội tuyến thành Yêu cầu biểu mẫu
Khi sử dụng Yêu cầu biểu mẫu với API, bạn sẽ nhận thấy rằng nếu bạn nhấn vào một tuyến API mà quá trình xác thực không thành công, nó sẽ đưa bạn đến chế độ xem 404
Giải pháp của tôi là tạo lớp FormRequest
của riêng tôi mà tôi đặt trong không gian tên API gốc namespace AppHttpRequestsApi;
Tệp này chứa văn bản Unicode hai chiều có thể được diễn giải hoặc biên dịch khác với nội dung hiển thị bên dưới. Để xem lại, hãy mở tệp trong trình chỉnh sửa hiển thị các ký tự Unicode bị ẩn. Tìm hiểu thêm về các ký tự Unicode hai chiều
Hiển thị ký tự ẩn
không gian tênỨng dụngHttp** @return mảng*/trừu tượng** @return bool*/trừu tượng** @param IlluminateContractsValidationValidator $validator* @return void< . HTTP_UNPROCESSABLE_ENTITY));}}namespace AppHttpRequestsApi;use IlluminateHttpJsonResponse;use IlluminateContractsValidationValidator;use IlluminateValidationValidationException;use IlluminateHttpExceptionsHttpResponseException;use IlluminateFoundationHttpFormRequest as LaravelFormRequest;abstract class FormRequest extends LaravelFormRequest{/*** Get the validation rules that apply to the request.** @return array*/abstract public function rules();/*** Determine if the user is authorized to make this request.** @return bool*/abstract public function authorize();/*** Handle a failed validation attempt.** @param IlluminateContractsValidationValidator $validator* @return void** @throws IlluminateValidationValidationException*/protected function failedValidation(Validator $validator){$errors = (new ValidationException($validator))->errors();throw new HttpResponseException(response()->json([‘errors’ => $errors], JsonResponse::HTTP_UNPROCESSABLE_ENTITY));}}
xem FormRequest thô. php được lưu trữ với ❤ bởi GitHub
Vì vậy, SearchController
của bạn sử dụng SearchRequest
thay vì Request
mặc định vẫn giữ nguyên
Chúng tôi chỉ cập nhật SearchRequest
để sử dụng FormRequest
tùy chỉnh chứ không phải mặc định và chúng tôi sẽ nhận được phản hồi JSON đẹp mắt khi có lỗi xác thực
Phần cuối cùng là thêm nó vào route của chúng ta tại routes/web. php cho phiên bản mới của ứng dụng laravel/Http/tuyến. php cho phiên bản cũ hơn
Route::post('login', '[email protected]');
Và nếu bạn gặp lỗi trong khi kiểm tra đăng nhập, có thể đó là do laravel của phần mềm trung gian csrf gây ra lỗi đó, chỉ cần tắt nó bằng cách cập nhật tệp app/Http/Kernel. php bằng cách xóa mã bên dưới
________số 8
Đây là kết quả ví dụ về những gì tôi đã làm trong postman bằng cách gửi tới url mà không có tên người dùng và mật khẩu
Các lớp yêu cầu tài nguyên của chúng tôi cho phép bạn xác thực JSON. Tài liệu API do khách hàng gửi dựa trên các quy tắc xác thực dành riêng cho ứng dụng của bạn. Bạn cũng có thể xác định quy tắc xác thực để xác định xem có thể xóa tài nguyên hay không
Đối với bất kỳ loại tài nguyên nào mà bạn cho phép tạo và/hoặc cập nhật (bao gồm cập nhật các mối quan hệ), bạn sẽ cần tạo một lớp yêu cầu tài nguyên. Để tạo yêu cầu tài nguyên, hãy sử dụng lệnh Artisan jsonapi:request
Điều này sẽ tạo ra lớp yêu cầu sau. namespace AppHttpRequestsApi;
0
TIỀN BOA
Tùy chọn namespace AppHttpRequestsApi;
1 không bắt buộc nếu bạn chỉ có một máy chủ
Phương pháp xác thực
Các đối tượng tài nguyên được xác thực bằng trình xác thực yêu cầu biểu mẫu của Laravel (mở cửa sổ mới). Nếu bất kỳ trường nào không tuân theo các quy tắc xác thực, phản hồi namespace AppHttpRequestsApi;
2 sẽ được gửi. Thông báo lỗi của trình xác thực sẽ được chuyển thành JSON. Lỗi API, với thông báo lỗi quy tắc trong thành viên namespace AppHttpRequestsApi;
3 của đối tượng lỗi. Mỗi lỗi cũng sẽ có một bộ con trỏ nguồn JSON xác định vị trí trong nội dung yêu cầu của lỗi xác thực
TIỀN BOA
Tại sao các quy tắc xác thực không được xác định trên các trường lược đồ, như tài nguyên Nova?
Đây là một câu hỏi hay. Mặc dù lúc đầu, các trường lược đồ của chúng tôi triển khai các quy tắc xác thực kiểu Nova (mở cửa sổ mới) có vẻ là một ý tưởng hay, nhưng chúng tôi không tin rằng đây là cách phù hợp để xác thực JSON. Trong khi Nova đang buộc xác thực của nó vào các trường nhập HTML, thì JSON của bạn. Các đối tượng tài nguyên API có thể chứa các cấu trúc phức tạp, chẳng hạn như mảng và các đối tượng JSON lồng nhau
Điều này làm cho việc đính kèm các quy tắc xác thực vào các trường cụ thể trở nên phức tạp hơn rất nhiều, do đó, chúng tôi đã chọn cách đơn giản hóa việc xác định quy tắc bằng cách sử dụng phương pháp yêu cầu biểu mẫu (mở cửa sổ mới) của Laravel
Dữ liệu xác thực
Tạo tài nguyên
Trình xác thực được cung cấp cùng với các trường tài nguyên (mở cửa sổ mới) do khách hàng gửi. Nói chung đây là namespace AppHttpRequestsApi;
4, namespace AppHttpRequestsApi;
5, namespace AppHttpRequestsApi;
6 và namespace AppHttpRequestsApi;
7 của tài nguyên. Để viết quy tắc xác thực dễ dàng hơn, chúng tôi đặt giá trị của các trường mối quan hệ thành thành viên namespace AppHttpRequestsApi;
8 của mối quan hệ
Điều này được minh họa tốt nhất với một ví dụ. Đưa ra yêu cầu này
Trình xác thực của bạn sẽ được cung cấp mảng dữ liệu sau
Cập nhật tài nguyên
Khi cập nhật tài nguyên, JSON. đặc tả API nói
Nếu một yêu cầu không bao gồm tất cả các thuộc tính cho một tài nguyên, thì máy chủ PHẢI diễn giải các thuộc tính bị thiếu như thể chúng được bao gồm trong các giá trị hiện tại của chúng. Máy chủ KHÔNG ĐƯỢC diễn giải các thuộc tính bị thiếu dưới dạng giá trị null
Điều tương tự cũng áp dụng cho các mối quan hệ
Vì Laravel cung cấp các quy tắc xác thực cho phép bạn so sánh các giá trị đang được xác thực (e. g. một ngày phải là ____100 giá trị khác), chúng tôi lấy các giá trị trường hiện có của tài nguyên của bạn và hợp nhất các giá trị do khách hàng cung cấp ở trên cùng
Ví dụ: trong yêu cầu namespace AppHttpRequestsApi;
01 sau đây, khách hàng chưa cung cấp giá trị cho các trường namespace AppHttpRequestsApi;
02, namespace AppHttpRequestsApi;
03 và namespace AppHttpRequestsApi;
04
Để tuân thủ JSON. Đặc tả API, chúng tôi phải giả định rằng các trường bị thiếu là các giá trị hiện tại được lưu trữ trên tài nguyên. Do đó, chúng tôi lấy các giá trị tài nguyên hiện tại và sau đó hợp nhất các giá trị máy khách ở trên cùng. Trong ví dụ trên, điều này có nghĩa là trình xác thực nhận dữ liệu sau
Khi tính các giá trị hiện hành ta chỉ lấy giá trị của quan hệ namespace AppHttpRequestsApi;
05 và namespace AppHttpRequestsApi;
06. Điều này là do chúng ta sẽ cực kỳ kém hiệu quả khi đọc giá trị của mọi mối quan hệ. Ví dụ: tài nguyên namespace AppHttpRequestsApi;
07 của chúng tôi có thể có hàng trăm namespace AppHttpRequestsApi;
08, không cần thiết để xác thực
Nếu bạn cần các giá trị của một mối quan hệ không được bao gồm theo mặc định, hãy sử dụng phương pháp namespace AppHttpRequestsApi;
09 trên trường trong lược đồ của bạn. Ví dụ: nếu chúng tôi muốn giá trị hiện tại của namespace AppHttpRequestsApi;
10 được sử dụng
Nếu bạn muốn loại trừ mối quan hệ namespace AppHttpRequestsApi;
05 hoặc namespace AppHttpRequestsApi;
06 mà chúng tôi tự động đưa vào, hãy sử dụng phương pháp namespace AppHttpRequestsApi;
13 trên trường trong lược đồ của bạn. Ví dụ: nếu chúng tôi muốn loại trừ mối quan hệ namespace AppHttpRequestsApi;
04
Tùy chỉnh các giá trị hiện có
Nếu bạn muốn điều chỉnh bất kỳ giá trị hiện tại nào trước khi hợp nhất các giá trị do máy khách cung cấp, hãy triển khai phương thức namespace AppHttpRequestsApi;
15 trên lớp yêu cầu của bạn. Phương thức này nhận model và JSON. Biểu diễn tài nguyên API làm đối số của nó
Bạn phải trả về mảng mà bạn muốn trình xác thực sử dụng. Nếu bạn trả về namespace AppHttpRequestsApi;
16, thì trình xác thực sẽ cho rằng bạn không sửa đổi tài nguyên và sẽ sử dụng tài nguyên đó như hiện tại
Sửa đổi mối quan hệ
JSON. Đặc tả API cung cấp các điểm cuối mối quan hệ để sửa đổi mối quan hệ tài nguyên. Các mối quan hệ với một và nhiều có thể được thay thế bằng yêu cầu namespace AppHttpRequestsApi;
01. Đối với mối quan hệ nhiều người, tài nguyên có thể được đính kèm thông qua yêu cầu namespace AppHttpRequestsApi;
18 hoặc tách ra bằng yêu cầu namespace AppHttpRequestsApi;
19
Đưa ra yêu cầu này
Trình xác thực của bạn sẽ được cung cấp mảng dữ liệu sau
TIỀN BOA
Trong trường hợp này, chúng tôi lọc các quy tắc tài nguyên được trả về từ phương thức namespace AppHttpRequestsApi;
20 của bạn để chỉ bao gồm các quy tắc có khóa bắt đầu bằng namespace AppHttpRequestsApi;
10
Quy tắc xác thực
Xác định quy tắc tài nguyên
Để xác thực dữ liệu này, bạn xác định các quy tắc xác thực trong phương thức namespace AppHttpRequestsApi;
20 của lớp yêu cầu tài nguyên của bạn. Chúng tôi sử dụng dữ liệu đã được xác thực để điền vào các mô hình, vì vậy bạn phải xác thực mọi thuộc tính và mối quan hệ mà bạn muốn điền vào mô hình của mình
Ví dụ: quy tắc namespace AppHttpRequestsApi;
23 của chúng tôi có thể trông như thế này
TIỀN BOA
Bạn có thể nhập gợi ý bất kỳ phụ thuộc nào bạn cần trong chữ ký của phương thức quy tắc. Chúng sẽ tự động được giải quyết thông qua Laravel service container
Quy tắc quan hệ
Trong ví dụ trên, bạn sẽ nhận thấy rằng quy tắc namespace AppHttpRequestsApi;
24 không được sử dụng để xác thực cho các mối quan hệ namespace AppHttpRequestsApi;
04 hoặc namespace AppHttpRequestsApi;
10. Điều này là do gói tuân thủ JSON. Thông số API và xác thực tất cả các mã định danh tài nguyên trong các mối quan hệ để kiểm tra xem chúng có tồn tại không. Nếu không tồn tại, yêu cầu sẽ bị từ chối khi tài liệu được phân tích cú pháp để tuân thủ JSON. đặc tả API
Thay vào đó, đối với các mối quan hệ, tất cả những gì chúng ta cần làm là cung cấp các quy tắc namespace AppHttpRequestsApi;
27 và namespace AppHttpRequestsApi;
28. Chúng sử dụng lược đồ cho loại tài nguyên yêu cầu để đảm bảo rằng các mối quan hệ chứa đúng loại tài nguyên
Hãy nhớ rằng bạn phải xác thực mọi mối quan hệ mà bạn muốn điền vào mô hình của mình
ID do khách hàng tạo
Ví dụ: nếu tài nguyên của bạn chấp nhận ID do khách hàng tạo, bạn phải thêm các quy tắc xác thực cho trường namespace AppHttpRequestsApi;
5
Quy tắc ID ứng dụng khách đảm bảo rằng ID được cung cấp khớp với mẫu mã định danh được đặt trong giản đồ của bạn. Do đó, không cần sử dụng quy tắc xác thực namespace AppHttpRequestsApi;
30 của Laravel
Nếu bạn luôn mong đợi một khách hàng cung cấp một namespace AppHttpRequestsApi;
5, hãy sử dụng quy tắc namespace AppHttpRequestsApi;
32 của Laravel như trong ví dụ trên. Nếu máy chủ của bạn xử lý ứng dụng khách không cung cấp ID (ví dụ: nếu bạn tự động tạo UUID ngẫu nhiên nếu ID không được cung cấp), thì hãy sử dụng quy tắc namespace AppHttpRequestsApi;
33 thay vì namespace AppHttpRequestsApi;
32
TIỀN BOA
Như trong ví dụ, không cần sử dụng quy tắc namespace AppHttpRequestsApi;
24 để kiểm tra xem ID do khách hàng tạo đã tồn tại chưa. Điều này là do JSON. Đặc tả API xác định rằng các máy chủ sẽ gửi phản hồi namespace AppHttpRequestsApi;
36 khi tạo tài nguyên có ID do khách hàng tạo đã tồn tại. Do đó, chúng tôi từ chối trường hợp này khi kiểm tra xem tài liệu có tuân thủ đặc điểm kỹ thuật hay không
Truy cập mô hình
Nếu bạn cần truy cập mô hình khi xác định các quy tắc xác thực của mình, hãy sử dụng phương pháp namespace AppHttpRequestsApi;
37. Vì các quy tắc của bạn được sử dụng cho cả yêu cầu tạo và cập nhật, nên phương thức này sẽ trả về namespace AppHttpRequestsApi;
16 cho yêu cầu tạo và mô hình cho yêu cầu cập nhật
Ví dụ
Truy cập dữ liệu xác thực
Nếu bạn cần truy cập dữ liệu xác thực trong phương thức namespace AppHttpRequestsApi;
20 của mình, hãy gọi phương thức namespace AppHttpRequestsApi;
40
Thêm Sau Móc
Nếu bạn muốn thêm hook “after” vào yêu cầu biểu mẫu, bạn có thể sử dụng phương thức namespace AppHttpRequestsApi;
41. Phương thức này nhận được trình xác thực được xây dựng đầy đủ, cho phép bạn gọi bất kỳ phương thức nào của nó trước khi các quy tắc xác thực thực sự được đánh giá
CẢNH BÁO
Khi thêm after hook, bạn sẽ cần sử dụng các phương thức trợ giúp của yêu cầu để xác định loại yêu cầu đó là gì. Ví dụ trên kiểm tra xem yêu cầu đang tạo hay cập nhật tài nguyên
Bạn cần làm điều này vì phương thức namespace AppHttpRequestsApi;
41 sẽ được gọi cho tất cả các loại yêu cầu khác nhau được mô tả trong chương này, tôi. e. tạo/cập nhật tài nguyên, sửa đổi mối quan hệ và xóa tài nguyên
Xác thực có điều kiện phức tạp
Phương thức namespace AppHttpRequestsApi;
41 cũng có thể được sử dụng để thêm xác thực có điều kiện phức tạp (mở cửa sổ mới), sử dụng phương thức namespace AppHttpRequestsApi;
44 trên trình xác thực. Ví dụ
CẢNH BÁO
Khi thêm xác thực có điều kiện, bạn sẽ cần sử dụng các phương thức trợ giúp của yêu cầu để xác định loại yêu cầu đó là gì. Ví dụ trên kiểm tra xem yêu cầu có đang tạo hoặc cập nhật tài nguyên hay không trước khi áp dụng các quy tắc xác thực có điều kiện
Bạn cần làm điều này vì phương thức namespace AppHttpRequestsApi;
41 sẽ được gọi cho tất cả các loại yêu cầu khác nhau được mô tả trong chương này, tôi. e. tạo/cập nhật tài nguyên, sửa đổi mối quan hệ và xóa tài nguyên
Xác thực Booleans
Trong JSON, một boolean luôn là namespace AppHttpRequestsApi;
46 hoặc namespace AppHttpRequestsApi;
47. Tuy nhiên, quy tắc xác thực namespace AppHttpRequestsApi;
48 của Laravel được gõ lỏng lẻo – tôi. e. nó sẽ chấp nhận namespace AppHttpRequestsApi;
46, namespace AppHttpRequestsApi;
47, namespace AppHttpRequestsApi;
51, namespace AppHttpRequestsApi;
52, namespace AppHttpRequestsApi;
53 và namespace AppHttpRequestsApi;
54 là các giá trị hợp lệ
Đối với JSON, tốt hơn là nhập đúng các giá trị boolean. Sử dụng quy tắc namespace AppHttpRequestsApi;
48 của chúng tôi để thực thi chỉ chấp nhận namespace AppHttpRequestsApi;
46 và namespace AppHttpRequestsApi;
47 làm giá trị hợp lệ
JSON. API khuyến nghị sử dụng định dạng ISO 8601 cho chuỗi ngày và giờ trong JSON (mở cửa sổ mới). Điều này không thể xác thực bằng cách sử dụng quy tắc xác thực namespace AppHttpRequestsApi;
58 của Laravel, bởi vì W3C tuyên bố rằng một số định dạng ngày và giờ là hợp lệ. Ví dụ: tất cả những điều sau đây đều hợp lệ
namespace AppHttpRequestsApi;
59namespace AppHttpRequestsApi;
60namespace AppHttpRequestsApi;
61namespace AppHttpRequestsApi;
62namespace AppHttpRequestsApi;
63namespace AppHttpRequestsApi;
64namespace AppHttpRequestsApi;
65namespace AppHttpRequestsApi;
66
Để chấp nhận bất kỳ định dạng hợp lệ nào cho trường ngày tháng, gói này cung cấp một đối tượng quy tắc. Điều này có thể được sử dụng như sau
Xác thực số
Các quy tắc namespace AppHttpRequestsApi;
67 và namespace AppHttpRequestsApi;
68 của Laravel được gõ lỏng lẻo – nghĩa là chúng sẽ chấp nhận các số nguyên, số float và các biểu diễn chuỗi của các số. Tuy nhiên, JSON có thể được gõ đúng – tôi. e. khi giải mã JSON, chúng ta có thể mong đợi một giá trị là số nguyên PHP hoặc số float
Nếu bạn có một trường có thể chấp nhận số nguyên hoặc số float, hãy sử dụng quy tắc xác thực namespace AppHttpRequestsApi;
69 của chúng tôi để đảm bảo trường được nhập đúng cách
Để chỉ chấp nhận số nguyên, hãy sử dụng quy tắc namespace AppHttpRequestsApi;
67
Quy tắc bắt buộc
Sử dụng quy tắc namespace AppHttpRequestsApi;
32 có thể dẫn đến JSON. Đối tượng lỗi API có con trỏ JSON tới namespace AppHttpRequestsApi;
72 hoặc trường thực tế được yêu cầu, e. g. namespace AppHttpRequestsApi;
73. Điều này sẽ thay đổi tùy theo việc khách hàng bỏ qua trường hay gửi một giá trị trống cho trường
Nếu bạn luôn muốn con trỏ liên quan đến trường thực, e. g. namespace AppHttpRequestsApi;
73, đảm bảo khách hàng của bạn luôn gửi giá trị cho trường, ngay cả khi giá trị đó trống (e. g. namespace AppHttpRequestsApi;
16)
Để minh họa điều này, đây là hai yêu cầu không tuân theo quy tắc namespace AppHttpRequestsApi;
32 và kết quả là phản hồi lỗi
Trường bị bỏ qua
Trong trường hợp này, không thể sử dụng một con trỏ JSON của namespace AppHttpRequestsApi;
73 vì nó sẽ trỏ đến một trường không tồn tại trong JSON yêu cầu. Thay vào đó, con trỏ namespace AppHttpRequestsApi;
72 cho biết lỗi là do đối tượng tài nguyên được giữ trong thành viên namespace AppHttpRequestsApi;
8 cấp cao nhất
Trường trống
Trong trường hợp này, con trỏ có thể là namespace AppHttpRequestsApi;
73 vì trường thực sự tồn tại trong JSON yêu cầu
Quy tắc đã xác nhận
Quy tắc namespace AppHttpRequestsApi;
81 của Laravel hy vọng sẽ có một trường có cùng tên và namespace AppHttpRequestsApi;
82 ở cuối. Ví dụ: nếu sử dụng quy tắc namespace AppHttpRequestsApi;
81 trên trường namespace AppHttpRequestsApi;
84, quy tắc đó dự kiến sẽ có trường namespace AppHttpRequestsApi;
85
Nếu bạn không sử dụng dấu gạch dưới trong tên trường của mình, điều này có nghĩa là quy tắc namespace AppHttpRequestsApi;
81 sẽ không hoạt động. Ví dụ: nếu sử dụng trường hợp lạc đà, trường bổ sung của bạn sẽ được gọi là namespace AppHttpRequestsApi;
87. Thật không may, Laravel không cung cấp cách tùy chỉnh tên trường xác nhận dự kiến
Trong trường hợp này, bạn sẽ cần sử dụng các quy tắc sau để namespace AppHttpRequestsApi;
87 hoạt động
Hãy nhớ lưu ý hướng dẫn ở trên về các yêu cầu cập nhật, trong đó máy chủ phải giả định rằng các giá trị bị thiếu có giá trị hiện tại. Đối với các trường hợp mật khẩu, trình xác thực của bạn sẽ không có quyền truy cập vào giá trị hiện tại
Do đó, bạn sẽ cần điều chỉnh việc sử dụng quy tắc namespace AppHttpRequestsApi;
32 và namespace AppHttpRequestsApi;
000 để chỉ thêm chúng nếu khách hàng đã gửi mật khẩu. Ví dụ
Tùy chỉnh thông báo lỗi
Bạn có thể tùy chỉnh các thông báo lỗi được sử dụng bởi yêu cầu biểu mẫu bằng cách ghi đè phương thức namespace AppHttpRequestsApi;
001. Phương thức này sẽ trả về một mảng các cặp thuộc tính/quy tắc và các thông báo lỗi tương ứng của chúng
Tùy chỉnh các thuộc tính xác thực
Nếu bạn muốn thay thế phần namespace AppHttpRequestsApi;
002 của thông báo xác thực bằng tên thuộc tính tùy chỉnh, bạn có thể chỉ định tên tùy chỉnh bằng cách ghi đè phương thức namespace AppHttpRequestsApi;
6. Phương thức này sẽ trả về một mảng các cặp thuộc tính/tên
Các yêu cầu biểu mẫu của Laravel cho phép bạn truy xuất dữ liệu đã được xác thực bằng phương thức namespace AppHttpRequestsApi;
004. Trên lớp yêu cầu của chúng tôi, điều này trả về dữ liệu đã được xác thực cho yêu cầu tạo hoặc cập nhật tài nguyên
Đối với các yêu cầu về mối quan hệ, bạn nên sử dụng phương thức namespace AppHttpRequestsApi;
005 để truy xuất giá trị đã xác thực
Xóa tài nguyên
Có thể thêm quy tắc xác thực để xóa tài nguyên. Điều này hữu ích nếu bạn muốn ngăn việc xóa tài nguyên trong một số trường hợp nhất định. Xác nhận này là tùy chọn. Nếu lớp trình xác thực của bạn không xác định bất kỳ quy tắc xóa nào, yêu cầu xóa sẽ được cho phép
Ví dụ: nếu bạn không muốn cho phép ứng dụng khách API xóa namespace AppHttpRequestsApi;
07 có namespace AppHttpRequestsApi;
08
Xóa dữ liệu xác thực
Theo mặc định, chúng tôi chuyển các giá trị trường hiện tại của tài nguyên tới trình xác thực xóa. Đây là quy trình tương tự như được mô tả ở trên để cập nhật tài nguyên, mặc dù chúng tôi cho phép bạn thêm dữ liệu cụ thể cho yêu cầu xóa
Để thêm dữ liệu cho xác thực xóa, hãy sử dụng phương thức namespace AppHttpRequestsApi;
008 để trả về một mảng giá trị. Điều này sau đó có sẵn để xác thực bằng cách sử dụng các quy tắc cho giá trị namespace AppHttpRequestsApi;
009
Trong ví dụ trên, phương thức namespace AppHttpRequestsApi;
008 được sử dụng để thêm một giá trị boolean để chỉ ra rằng tài nguyên namespace AppHttpRequestsApi;
07 không có nhận xét nào. Điều này sau đó được xác thực bằng đường dẫn namespace AppHttpRequestsApi;
012
Quy tắc xác thực xóa
Xác định các quy tắc xác thực xóa trong phương thức namespace AppHttpRequestsApi;
013 của trình xác thực của bạn, như trong ví dụ trên
Như với phương thức namespace AppHttpRequestsApi;
20, bạn có thể nhập gợi ý bất kỳ phụ thuộc nào bạn cần trong chữ ký của phương thức quy tắc. Chúng sẽ tự động được giải quyết thông qua Laravel service container
Bạn cũng có thể truy cập mô hình đang bị xóa thông qua phương pháp namespace AppHttpRequestsApi;
37
Xóa thông báo lỗi
Để thêm bất kỳ thông báo lỗi tùy chỉnh nào cho các quy tắc tài nguyên xóa của bạn, hãy triển khai phương thức namespace AppHttpRequestsApi;
016. Điều này sẽ trả về một mảng thông báo tùy chỉnh, sẽ được hợp nhất với thông báo lỗi tùy chỉnh tài nguyên của bạn
Xóa tên thuộc tính
Để thêm bất kỳ tên thuộc tính tùy chỉnh nào cho quy tắc tài nguyên xóa của bạn, hãy triển khai phương thức namespace AppHttpRequestsApi;
017. Điều này sẽ trả về một mảng các thuộc tính tùy chỉnh, sẽ được hợp nhất với các thuộc tính tùy chỉnh của tài nguyên của bạn
Phương pháp trợ giúp
Lớp yêu cầu tài nguyên của chúng tôi có một số phương thức trợ giúp, để cho phép bạn xác định loại yêu cầu mà lớp đang xử lý. Các phương pháp có sẵn là
TIỀN BOA
Chúng tôi khuyên bạn nên sử dụng các phương pháp này thay vì sử dụng phương pháp namespace AppHttpRequestsApi;
018, vì động từ HTTP có thể được sử dụng cho cả yêu cầu tài nguyên và mối quan hệ. e. g. namespace AppHttpRequestsApi;
18 được sử dụng cho cả việc tạo tài nguyên và thay thế nội dung của một mối quan hệ
đang tạo
Trả về namespace AppHttpRequestsApi;
46 nếu yêu cầu sẽ thay thế nội dung của mối quan hệ trên một tài nguyên hiện có. Ví dụ
Làm cách nào để tạo quy tắc xác thực tùy chỉnh trong Laravel?
Làm cách nào để tùy chỉnh thông báo lỗi xác thực trong Laravel?
Làm cách nào để thay đổi thông báo xác thực trong Laravel?
Làm cách nào để trả về lỗi xác thực trong Laravel API?
Bạn đang tìm hiểu bài viết: Phản hồi json xác thực tùy chỉnh của Laravel 2024
HỆ THỐNG CỬA HÀNG TRÙM SỈ QUẢNG CHÂU
Điện thoại: 092.484.9483
Zalo: 092.484.9483
Facebook: https://facebook.com/giatlathuhuongcom/
Website: Trumsiquangchau.com
Địa chỉ: Ngõ 346 Nam Dư, Trần Phú, Hoàng Mai, Hà Nội.