2015-07-21 18 views
6

Tôi đã triển khai chính xác ứng dụng khách API của Google trong ứng dụng PHP của mình. Tôi đã có thể kết nối với dịch vụ tôi muốn.Cách kiểm tra xem khóa API Google Client có hợp lệ với thư viện API của Google PHP không?

Nhưng bây giờ tôi muốn kiểm tra xem liệu khóa API người dùng nhập có hợp lệ hay không.

Tôi đã xem xét xung quanh hoặc tại các phương pháp được hiển thị bởi lớp Google_Client() nhưng tôi không nghĩ rằng tôi chắc chắn cách kiểm tra điều này.

Dưới đây là phương pháp trong lớp học của tôi tạo ra một khách hàng:

private function client($api_key) { 

     $client = new \Google_Client(); 
     $client->setClassConfig('Google_Cache_File', 'directory', $this->cache_dir); 
     $client->setDeveloperKey($api_key); 
     $client->setApplicationName($this->name); 
     $client->setScopes(array(\Google_Service_Calendar::CALENDAR_READONLY)); 
     $client->setAccessType('online'); 

     return $client; 
    } 

Và tôi muốn thực hiện một phương pháp để biết chìa khóa API được sử dụng là hợp lệ hay không ...

public function validate_api_key($api_key) { 
     $client = $this->client($api_key); 

     // What should I use here to check if $api_key is valid? 

     if ($client) { 
      return true; 
     } 
     return 'error'; 
    } 

Hoặc tôi có nên kết nối với một dịch vụ và sau đó kiểm tra xem tôi có quyền truy cập đọc từ đó không? Nhưng tôi tin rằng có một cách đơn giản và tốt hơn để thực hiện việc này ...

+0

Tôi có nên kết nối với dịch vụ và sau đó kiểm tra xem tôi có quyền truy cập đọc từ đó không? Tôi khá chắc chắn đó là họ chỉ có cách để kiểm tra nếu nó hợp lệ – DaImTo

+0

cũng yeah ... Tôi đã hy vọng mặc dù cho một phương pháp trực tiếp trong đối tượng khách hàng trả lại một bool hoặc một cái gì đó ... điều là Google_Client hoặc một dịch vụ Google instantiated khách hàng sẽ vẫn cố gắng kết nối và dịch vụ sẽ phản hồi, do đó, các bước để xác minh xem khóa api có hợp lệ hay không bằng cách kéo dữ liệu thực sự là một số thực sự là – unfulvio

+1

Vâng, cách duy nhất để lib xác thực nó là gửi yêu cầu. Tôi hạn hán Google đã tiếp xúc với định dạng của các phím của nó. thậm chí checkToken() có vẻ như nó chỉ cố gắng thực hiện một yêu cầu giả. – DaImTo

Trả lời

1

bạn có thể kiểm tra bằng JavaScript; khóa sai sẽ luôn đặt thuộc tính không có giấy tờ là window.G_INCOMPAT. có thể cần phải vá khỉ với function alert() {} để loại bỏ alert() cho khóa không hợp lệ, điều này sẽ chỉ làm phiền quá trình thiết lập khóa.

answer này có một cách tiếp cận thú vị liên quan đến alert()

đó cũng là một chức năng ghi nhận, người ta có thể móc vào: https://developers.google.com/maps/documentation/javascript/events#auth-errors

nếu nó thực sự có được PHP, bạn vẫn có thể tạo ra một số JS và chạy nó với PhantomJS.

xem Github của tôi: php-phantomjs ... không phải là không thể.

Các vấn đề liên quan