【问题标题】: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 的内容。

【问题讨论】:

    标签: php json rest laravel laravel-4


    【解决方案1】:

    我的逻辑是不是更接近了?

    是的,它足够接近。

    因此,主要目标是访问网站 B 中的内容。您决定 B 中的内容是否为受限内容。

    如果可以访问这些内容的用户有限,是的,您需要一个 api 密钥。

    如果站点 B 的内容是公开的,您可以只打印 json 数据,而无需像 github 那样需要任何 api 密钥:https://api.github.com/users/github

    【讨论】:

    • 你知道我可以从哪里开始吗?我试着用谷歌搜索了一段时间,但我真的找不到任何与api_key 相关的东西。 :(
    猜你喜欢
    • 2015-02-18
    • 1970-01-01
    • 2014-04-16
    • 2012-07-16
    • 1970-01-01
    • 2021-04-01
    • 2015-02-21
    • 2021-02-08
    • 2011-12-28
    相关资源
    最近更新 更多