Hướng dẫn php rest api with api key - php rest api với api key

Thiết lập môi trường của bạn

Dự án ví dụ này được phát triển bằng Php 8, vì vậy bạn cần cài đặt này.

Tập hợp các biến môi trường của dự án

Bây giờ bạn nên có & nbsp; khóa API của ứng dụng của bạn.API Key.

Để chạy hướng dẫn ví dụ, bạn cần đặt các biến môi trường sau.

Tên biếnSự mô tả
CLIENT_ID Khóa API của ứng dụng của bạnAPI Key
Điểm cuối URL cho API bạn muốn gọi. Trong hướng dẫn này, chúng tôi yêu cầu điểm cuối hạn chế ứng dụng của Hello World Sandbox: https: //sandbox.api.service.nhs.uk/hello-world/hello/application
https://sandbox.api.service.nhs.uk/hello-world/hello/application

Bạn có thể đặt các biến môi trường của mình trong một tệp có tên .ENV. Dự án này chứa một tệp env mẫu để sử dụng:.env. This project contains a sample env file to use:

  • Đổi tên env.sample thành .ENV và sửa đổi nó.env.sample to .env and modify it.
  • Nguồn nó bằng cách chạy nguồn .ENVsource .env

{

  "message": "Hello Application!"

}

Tôi đang làm việc với Phil Sturgeon REST_CONTROLLER cho Codeigniter để tạo API REST, cho đến nay tôi đã có thể tạo một thư viện đơn giản để tạo các khóa API cho người dùng. Vấn đề của tôi bây giờ là gửi khóa API đến API cho mỗi yêu cầu, cách tôi làm điều này mà không cần phải gửi thủ công cho mọi yêu cầu.

Hướng dẫn php rest api with api key - php rest api với api key

Hippietrail

15.1K18 Huy hiệu vàng96 Huy hiệu bạc149 Huy hiệu đồng18 gold badges96 silver badges149 bronze badges

Hỏi ngày 19 tháng 12 năm 2011 lúc 21:01Dec 19, 2011 at 21:01

Hướng dẫn php rest api with api key - php rest api với api key

Bạn nên xem xét việc ký yêu cầu. Một ví dụ tuyệt vời là API REST S3 của Amazon.

Tổng quan thực sự khá đơn giản. Người dùng có hai mẩu thông tin quan trọng để sử dụng API của bạn, ID người dùng công cộng và khóa API riêng tư. Họ gửi ID công khai với yêu cầu và sử dụng khóa riêng để ký vào yêu cầu. Máy chủ nhận tìm khóa của người dùng và quyết định xem yêu cầu đã ký có hợp lệ hay không. Dòng chảy là một cái gì đó như thế này:

  1. Người dùng tham gia dịch vụ của bạn và nhận ID người dùng (ví dụ: 123) và khóa API.
  2. Người dùng muốn đưa ra yêu cầu cho dịch vụ API của bạn để cập nhật địa chỉ email của họ, vì vậy họ cần gửi yêu cầu đến API của bạn, có lẽ đến /user/update?email=.
  3. Để có thể xác minh yêu cầu, người dùng sẽ thêm ID người dùng và chữ ký vào cuộc gọi, do đó cuộc gọi trở thành /user/update?email=&userid=123&sig=some_generated_stringsignature to the call, so the call becomes /user/update?email=&userid=123&sig=some_generated_string
  4. Máy chủ nhận được cuộc gọi, thấy rằng nó từ userid = 123 và tìm khóa API cho người dùng đó. Sau đó, nó sao chép các bước để tạo chữ ký từ dữ liệu và nếu chữ ký khớp với nhau, yêu cầu là hợp lệ.

Phương pháp này đảm bảo khóa API không bao giờ được gửi như một phần của giao tiếp.API key is never sent as part of the communication.

Hãy xem hàm Hash_hmac () của PHP, nó phổ biến để gửi các yêu cầu đã ký. Nói chung, bạn bắt người dùng làm một cái gì đó như đặt tất cả các tham số vào một mảng, sắp xếp theo thứ tự bảng chữ cái, nối vào một chuỗi và sau đó hash_hmac chuỗi đó để lấy sig. Trong ví dụ này, bạn có thể làm:

$sig = hash_hmac("sha256",$params['email'].$params['userid'],$API_KEY)

Sau đó thêm $sig vào url còn lại như đã đề cập ở trên.

Đã trả lời ngày 19 tháng 12 năm 2011 lúc 21:39Dec 19, 2011 at 21:39

Hướng dẫn php rest api with api key - php rest api với api key

Zombatzombatzombat

91.2K24 Huy hiệu vàng156 Huy hiệu bạc164 Huy hiệu đồng24 gold badges156 silver badges164 bronze badges

10

Ý tưởng về phần còn lại là nó không có quốc tịch, vì vậy không có phiên hay gì. Nếu bạn muốn xác thực, thì đây là nơi các khóa đi vào và các khóa phải được thông qua cho mọi yêu cầu và mỗi yêu cầu xác thực người dùng (vì phần còn lại là không trạng thái, tôi đã đề cập đến điều đó?).

Có nhiều cách khác nhau bạn có thể vượt qua một chìa khóa. Bạn có thể truyền nó dưới dạng tham số (tức là http://example.com/api/resource/id?key=API_KEY) hoặc bạn có thể vượt qua nó như một phần của tiêu đề HTTP. Tôi đã thấy API chỉ định bạn gửi tên người dùng của mình và khóa API là phần mật khẩu của tiêu đề ủy quyền truy cập cơ bản HTTP.

Một yêu cầu ví dụ:

 true,
    CURLOPT_URL => 'http://example.com/api/resource/id',
    CURLOPT_USERPWD => 'martinbean:4eefab4111b2a'
));
$response = curl_exec($ch);

Trường hợp martinbean sẽ là tên người dùng tài khoản của tôi trên trang web của bạn và 4eefab4111b2a sẽ là khóa API của tôi.

Đã trả lời ngày 19 tháng 12 năm 2011 lúc 21:24Dec 19, 2011 at 21:24

Martin Beanmartin BeanMartin Bean

37.3K25 Huy hiệu vàng122 Huy hiệu bạc195 Huy hiệu Đồng25 gold badges122 silver badges195 bronze badges

7

Tôi có thể sử dụng API REST trong PHP không?

Trong bước này, bạn sẽ cập nhật ứng dụng của mình để tìm nạp dữ liệu từ một nguồn đáng tin cậy (bản đồ OpenWeather). Có nhiều cách bạn có thể nhận được thông tin từ API RESTful bằng PHP. Một trong những cách phổ biến nhất là sử dụng thư viện Curl.There are many ways you can get information from a RESTful API using PHP. One of the most common ways is to use the curl library.

Làm thế nào lưu trữ an toàn API khóa PHP?

Mẹo để giữ an toàn với truy cập an toàn Truy xuất nội dung ở phía máy chủ chứ không phải phía khách hàng để tránh rò rỉ các khóa API của bạn. Lưu trữ các khóa API của bạn bên ngoài mã nguồn của bạn. Ví dụ, lưu trữ chúng như các biến môi trường. Hãy chắc chắn rằng chúng cũng được mã hóa.Store your API Keys outside your source code. For example, store them as environment variables. Make sure they're encrypted too.

Làm cách nào để kết nối với API trong PHP?

Để bắt đầu với API này, chúng ta cần gọi đăng ký điểm cuối:..
Thực hiện một yêu cầu bài đăng.Bây giờ chúng tôi đi đến bước đầu tiên và tạo một bộ sưu tập dữ liệu bằng cách sử dụng điểm cuối của Bộ sưu tập.....
Thực hiện yêu cầu nhận.....
Thực hiện một yêu cầu đặt.....
Phương thức xóa.....
Lặp lại nhận yêu cầu và kiểm tra xem dữ liệu có thực sự bị xóa không ..

Làm thế nào nhận được dữ liệu từ URL API trong PHP?

Mã để đọc dữ liệu API bằng hàm PHP File_Get_Contents () hàm Php Inbuilt File_Get_Contents () được sử dụng để đọc một tệp vào một chuỗi.Điều này có thể đọc bất kỳ tệp hoặc dữ liệu API nào bằng URL và lưu trữ dữ liệu trong một biến.Hàm này là phương pháp dễ nhất để đọc bất kỳ dữ liệu nào bằng cách truyền URL API.file_get_contents() function PHP inbuilt file_get_contents() function is used to read a file into a string. This can read any file or API data using URLs and store data in a variable. This function is the easiest method to read any data by passing API URL.