【问题标题】:Realising 2-legged OAuth with PHP and MySQL使用 PHP 和 MySQL 实现 2-legged OAuth
【发布时间】:2013-03-29 04:23:45
【问题描述】:

我想为我自己的移动应用创建一个 API,以访问存储在 MySQL 数据库中的数据。但是,我阅读了很多关于 3-legged OAuth 方法的文章,我认为这不是我正在寻找的解决方案。当我正确理解它时,例如,当我创建一个新的 twitter 客户端并想要使用 twitter Api 时,3-legged 方法更有用。

但我的应用程序不是第三方应用程序,我的应用程序和网站包括。数据库来自我。所以我假设,用户启动应用程序输入他的用户 ID 和密码,然后 api 具有检查用户 ID/pw 是否正确并将结果“true”发送回应用程序的功能。然后,该应用程序为用户提供了访问需要登录的功能的可能性。因此,不应将用户重定向到网站并“允许”访问 userid/pw。

如果我理解正确的话,两条腿的方法更有可能达到我的目的。但我也对此感到困惑。我假设用户输入他的 id 和 pw,这些凭据由 Web 服务在数据库中查找,令牌将在数据库中为该用户查找并将发送到应用程序。此外,应用程序令牌从一开始就保存在应用程序中,并且也将与请求一起发送。该应用程序将在内部从数据库中保存此用户令牌,并在用户每次使用 Web 服务时使用此令牌。对 Web 服务的每个请求都会将令牌发送到服务,并且服务会检查令牌是否有效,否则会向应用发送错误。

我查了这个例子: http://code.google.com/p/oauth-php/wiki/ConsumerHowTo#Two-legged_OAuth

但是没有提到在数据库中查找用户的用户名/密码...

谁能解释我如何解决这个问题?

【问题讨论】:

    标签: php mysql api oauth


    【解决方案1】:

    Twoleged OAuth 类似于客户端-服务器。它是一个客户端应用程序,请求对来自服务器的数据进行完全访问。无论哪个用户访问客户端,客户端都可以完全访问其凭据允许的所有数据

    三足 OAuth 是用户-客户端-服务器。它是一个请求从服务器访问用户数据的客户端。客户只能访问该授权用户的数据(直到用户撤销访问权限)。

    【讨论】:

    • 是的。但在我的情况下,我不想将通过我的应用程序登录的人重定向到任何网站以请求令牌。应该只在后台检查用户的凭据,并应授予应用程序的访问权限。当您输入凭据时,官方 Twitter 或 Facebook 应用程序不会将您重定向到任何地方以接受任何内容....我该怎么做?
    • 如果您同时控制客户端和服务器,那么您应该创建一个客户端-服务器应用程序,其中用户凭据从客户端传递到后台服务器以进行授权。
    • 是否有任何可用的教程可以准确描述 - 服务器应该如何反应以及我如何使用 PHP 实现它...?
    猜你喜欢
    • 2011-02-02
    • 2011-03-03
    • 2014-11-04
    • 2013-08-21
    • 2013-06-05
    • 2012-12-13
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多