如何允许其他站点从您的站点检索数据?
Posted
技术标签:
【中文标题】如何允许其他站点从您的站点检索数据?【英文标题】:How to allow other site retrieve data from your site? 【发布时间】:2015-02-17 15:58:01 【问题描述】:详情
我是 RESTful API 和 Laravel 世界的新手。
但是“每个艺术家首先都是业余爱好者。-对吧?” 让我们进入正题。
我有 2 个网站。让我们称之为:
A
B
网站B
有一个很好的列表,如果用户表+它的所有关系。
我想允许网站A
访问网站B
并加载那些不错的数据。
我从来没有这样做过。我假设逻辑是:
网站A
需要某种 api_keys 才能访问网站 B
。
那么在api_key匹配后,网站B
会将数据以json文件的形式返回给网站A
。
然后,A
网站将接收该 json 文件,并将它们加载到 html 中并显示它。
我的逻辑是否更接近?如果我错了,请纠正我。 :)
这是我尝试过的
在做了一些研究之后,我发现了这个site。我真的很喜欢它。我全部完成了。 现在,我对 RESTful API 有了更多的了解。
然后,我遇到了这个site。我找到了这个
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
的内容。
【问题讨论】:
【参考方案1】:我的逻辑是不是更接近了?
是的,它足够接近。
因此,主要目标是访问网站 B 中的内容。您决定 B 中的内容是否为受限内容。
如果可以访问这些内容的用户有限,是的,您需要一个 api 密钥。
如果站点 B 的内容是公开的,您可以只打印 json 数据,而无需像 github 那样需要任何 api 密钥:https://api.github.com/users/github。
【讨论】:
你知道我可以从哪里开始吗?我试着用谷歌搜索了一段时间,但我真的找不到任何与api_key
相关的东西。 :(以上是关于如何允许其他站点从您的站点检索数据?的主要内容,如果未能解决你的问题,请参考以下文章