Làm cách nào để xác thực REST api trong PHP?
Nếu bạn ở đây vì bạn muốn kết nối mã php của mình với một API bên ngoài, trước tiên vui lòng kiểm tra các cuộc gọi api cURL của tôi với hướng dẫn về php. Đây là phần 2 về cách kết nối với API bằng cURL trong php, vì tôi đã nhận được rất nhiều câu hỏi về cách kết nối nếu API yêu cầu xác thực (utoken) trước Show
Đứng lên. Lần này, tôi sẽ sử dụng Javascript để linh hoạt hơn. Vì tôi cần thực hiện cuộc gọi api 'xác thực' trước cuộc gọi GET ban đầu của chúng tôi. Do đó, tôi tạo các lệnh gọi API của mình trong các tệp php của riêng mình ở bên cạnh và sẽ nhắm mục tiêu các tệp này bằng cách sử dụng ES6 async/fetch từ trong trang của tôi. Nếu bạn thấy tôi liên kết đến my-site. com, điều này có nghĩa là tôi đã tự tạo tệp trên máy chủ của mình. Nếu tôi đang liên kết đến api-site. com, điều này có nghĩa là tôi đang gọi API bên ngoài Tạo khóa xác thựcMột số API chỉ cho phép yêu cầu POST hoặc GET nếu bạn sử dụng auth-token. Trước tiên, chúng tôi cần tạo mã thông báo xác thực này trước khi chúng tôi được phép thực hiện lệnh gọi API. Thông thường, các tài liệu API sẽ giải thích cách bạn có thể tạo mã xác thực của chúng. Trong ví dụ của tôi, tôi có thể tạo mã thông báo xác thực bằng cách đăng ID ứng dụng khách API, client_secret và loại đăng nhập vào tệp Xác thực API của họ Đây là cách tôi có thể tạo và sử dụng mã thông báo xác thực của mình, dựa trên tập lệnh cURL trong hướng dẫn phần 1 của tôi. Trong hướng dẫn này, tôi sẽ gọi tệp này là api/auth. php
Điều này sẽ trả lại một auth-token cho tôi. Với mã thông báo xác thực này, tôi có thể bắt đầu thực hiện các lệnh gọi API bình thường như POST và GET. Tuy nhiên. API ví dụ của tôi chỉ giữ cho mã thông báo xác thực của tôi tồn tại trong 2 tuần VÀ sẽ chỉ cho phép 3 mã thông báo xác thực cùng một lúc. Vì vậy, đối với mỗi cuộc gọi tôi thực hiện, tôi cần tạo lại cuộc gọi này. Đây là lý do tại sao tôi sử dụng JS làm ví dụ, vì vậy chúng tôi có thể dễ dàng nhanh chóng tạo mã thông báo AUTH trước lệnh gọi của chính chúng tôi. Đối với điều này, tôi có một hàm JS riêng để đăng lên api/auth của riêng chúng tôi. php. JS
Đây là tập lệnh JS và tập lệnh PHP mà tôi đang sử dụng để tạo mã thông báo xác thực cho API của mình. Tôi đang sử dụng await để đảm bảo rằng tập lệnh của chúng tôi chỉ liên tục khi chúng tôi đã nhận được mã xác thực. Nếu chúng tôi không chờ mã thông báo này, thì có thể phần còn lại của tập lệnh của chúng tôi sẽ cố thực hiện lệnh gọi API mà không có mã thông báo và sẽ trả về lỗi Làm cách nào để sử dụng Auth-token của chúng tôi?Được rồi, bây giờ chúng tôi có mã thông báo xác thực cho ứng dụng của mình… Chúng tôi sử dụng cái này như thế nào? yêu cầu NHẬN cURL (có Xác thực)Trong hầu hết các trường hợp (tôi nghĩ) bạn cần thêm mã thông báo xác thực của mình vào url bạn đang sử dụng để thực hiện lệnh gọi API hợp lệ. Một lần nữa, bạn sẽ có thể tìm thấy điều này trong tài liệu về API mà bạn đang sử dụng. Trong ví dụ của tôi, nếu tôi muốn thực hiện lệnh gọi API, liên kết của tôi sẽ trông như thế này. api/get_all_reviews. php
Chúng tôi biết $app_key của mình và chúng tôi vừa tạo $utoken của mình. Nên chung tôi. php để thực hiện cuộc gọi GET sẽ như thế này. ($_POST[‘auth_token’] sẽ là utoken nhận được từ chức năng trước đó của chúng tôi
Điều này sẽ trả về tất cả các bài đánh giá sản phẩm của chúng tôi trong ví dụ mà tôi đã chọn cho hướng dẫn này. Bây giờ chúng ta vẫn cần nhắm mục tiêu tệp GET php này bằng JS của mình và đừng quên tạo utoken trước. JS
Như bạn có thể thấy, chúng tôi đang chờ chức năng Xác thực lại, trước khi tiếp tục với lệnh gọi API ban đầu của mình. Chúng tôi gửi auth nhận được. access_token cùng với dữ liệu biểu mẫu của chúng tôi vào tập lệnh GET php của chúng tôi. displayAllReviews() là một chức năng ngẫu nhiên, tôi đang chuyển dữ liệu nhận được của mình tới. Vì vậy, ở đây bạn có thể gọi các chức năng của riêng mình, tùy thuộc vào những gì bạn muốn làm với dữ liệu này Yêu cầu POST của cURL (có Xác thực)Tương tự với POST cũng như với GET, chúng tôi cần thêm mã thông báo của bạn (Auth-token) vào url. Đây là một ví dụ về liên kết POST của tôi tới API, với utoken của tôi. api/post_review. php
Để tạo POST, trước tiên tôi thu thập tất cả thông tin tôi cần để tạo bài đăng. (như email người dùng và URL sản phẩm mà tôi muốn đăng bài đánh giá). Khi tôi có tất cả dữ liệu, tôi gọi hàm postReview, hàm này sẽ thực hiện cuộc gọi API POST. Chúng tôi cần thu thập trước tất cả dữ liệu này, nếu không, chúng tôi không được phép thực hiện lệnh gọi API của mình. Vì yêu cầu POST của chúng tôi không yêu cầu biến utoken Bây giờ tập lệnh JS tôi đã sử dụng cho việc này. JS
Không có tiêu đề Kiểm soát truy cập-Cho phép-Xuất xứ – (CORS)Nếu bạn đang thực hiện lệnh gọi JS tới các tệp php của riêng mình, nhưng các tệp của bạn nằm trên một máy chủ khác, vui lòng ở dòng sau ở đầu mỗi tệp. tập tin php bạn đang sử dụng
Điều này sẽ khắc phục lỗi kiểm soát truy cập mà bạn thấy trong bảng điều khiển js Tôi thực sự hy vọng phần này cũng được giải thích rõ ràng. Nếu không, xin vui lòng hỏi trong các ý kiến. (Tôi không thể đảm bảo bạn sẽ nhận được phản hồi) Hãy cho tôi biết nếu nó làm việc cho bạn
Nhận các bài báo hay nhất của chúng tôi ngay trong hộp thư đến của bạn. Chỉ một lần mỗi quý, bởi vì không ai thích thư rác Cảm ơnCảm ơn bạn đã đăng ký. Tin nhắn cảm ơn của chúng tôi đã sẵn sàng cho bạn Đọc thêm các chủ đề liên quan?
Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu * Nhận xét * Tên * Email * Trang mạng Δ Darla nói. Hi weichie, Tôi gặp khó khăn khi gọi API bên ngoài bằng cURL và php. Tôi có bí mật ứng dụng khách và id ứng dụng khách cũng như URL gọi lại nhưng tôi không thể lấy email người dùng hoặc id người dùng. Bạn có thể giúp tôi với điều này? Abdul nói. tôi thực sự đánh giá cao những nỗ lực của bạn để giải thích khái niệm này một cách ngắn gọn tan nói. tôi có thể gửi email cho bạn không. tôi cần xác minh điều gì đó trên dữ liệu của mình
Ajay Babu nói. Xin chào, Joshua Rigney nói. $_POST đến từ đâu?
Chris nói. Làm thế nào để bạn xác thực khi gọi https. // trang web của tôi. com/api/auth. php?
|