簡體   English   中英

如何允許其他網站從您的網站檢索數據?

[英]How to allow other site retrieve data from your site?

細節

我是RESTful API和Laravel世界的新手。

但是“每個藝術家都是第一個業余愛好者。 - 對吧?”讓我們談談這一點。

我有2個網站。 我們稱之為:

  • A
  • B

如果用戶表+所有關系,網站B有一個很好的列表。

我想允許網站A訪問網站B並加載那些不錯的數據。

我從來沒有這樣做過。 我假設邏輯是:

  • 網站A需要某種api_keys才能訪問網站B
  • 然后在api_key匹配之后,網站B將數據作為json文件返回給網站A
  • 然后,網站A將接收該json文件,並將其加載到HTML中並顯示它。

我的邏輯是否接近? 如果我錯了,請糾正我。 :)

這是我嘗試過的

做了一些研究后,我遇到了這個網站 我真的很喜歡它。 我完成了它。 現在,我有點了解RESTful API。

然后,我遇到了這個網站 我找到了這個

filters.php

Route::filter('api', function() {

    // Fetch a user record based on api key
    $user = User::where('api_key', '=', Input::get('api_key'))
                ->take(1)
                ->get();

    if ($user->count() > 0) {
        Auth::onceUsingId($user[0]->id); // Authorize the user for this one request
    } else {
        return Response::view('errors.404', array(), 404)->header('Content-Type', 'application/json');
    }
});

我注意到這個的OP,存儲在users表中的api_key

我的問題

  • 我需要像他那樣做嗎?
  • 這是唯一的方法嗎?
  • 有沒有更好/更簡單的方法來做到這一點?

  • 而不是從數據庫中獲取api_key,我可以手動將其設置為random數+文本,如'21sdf364rt7y6r5ty1u28x1h8gt7yt2ert3654871'嗎?

  • api_key會過期多長時間? 它甚至expire嗎? 我們怎么知道的?

同樣,我的主要goal是允許網站A訪問網站B

我的邏輯是否接近?

是的,它足夠接近。

因此,主要目標是從網站B訪問內容。您可以決定B中的內容是否受限制內容。

如果可以訪問這些東西的用戶有限,是的,你需要一個api密鑰。

如果站點B的內容是公共的,你可以打印json數據而不需要像github那樣的任何api密鑰: https//api.github.com/users/github

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM