[英]How to allow other site retrieve data from your site?
細節
我是RESTful API和Laravel世界的新手。
但是“每個藝術家都是第一個業余愛好者。 - 對吧?”讓我們談談這一點。
我有2個網站。 我們稱之為:
A
B
如果用戶表+所有關系,網站B
有一個很好的列表。
我想允許網站A
訪問網站B
並加載那些不錯的數據。
我從來沒有這樣做過。 我假設邏輯是:
A
需要某種api_keys才能訪問網站B
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.