在WordPress插件和Laravel API之间实现身份验证的正确方法是什么?

时间:2016-12-02 02:55:30

标签: wordpress laravel authentication api-design

我对如何在外部消费者网站和Laravel API之间进行身份验证感到困惑。我想要的是拥有一个网络应用程序,用户可以使用使用应用程序API的外部网站将应用程序中的信息呈现给其他人。以下是更详细的基本设置示例:

  • 具有受保护API端点api/status的Laravel 5.3应用。只有经过身份验证的用户才能点击api/status,并且返回的状态是经过身份验证的用户的特定状态。
  • 代表用户使用Laravel API的外部网站,让我们称她为Alice。必要的信息存储在Alice的网站的后端,以便它可以代表Alice对API进行身份验证。 (我正在进行的实际实现将是一个WordPress站点,API消耗将通过我正在实现的WordPress插件完成;因此存储的任何信息都可能存储在WordPress数据库中。)
  • 该网站有一个/status页面,可向浏览该页面的任何人显示Alice的状态。 (即,当浏览/status页面时,代表Alice对应用程序进行API调用。返回的状态特定于Alice,并显示给浏览页面的人。)人们浏览到爱丽丝网站上的/status无需进行任何形式的身份验证即可查看页面上的状态。

与我的实际目标相比,这是非常简化的,但我希望它可以将无关的细节保持在最低限度,以便我们可以专注于我的实际问题,这是我应该使用什么样的身份验证方法来实现这一目标?

我不想要的一件事:

  • 浏览爱丽丝网站的人不应该使用他们的浏览器检查员来观看API调用,并且可以代表Alice自己创建进一步的API调用。

我在Laravel应用程序上安装了Passport,但如果我正确理解了事情,我就不想使用基本的访问令牌发布工作流程,因为这需要人们浏览到Alice'使用Alices的凭证进行身份验证的网站。出于同样的原因,我不认为我想要一个隐式授权令牌。

使用密码授予令牌需要在她的网站上存储Alice的Laravel应用程序的密码。可以将这样的密码存储在WordPress数据库中吗?这让我很紧张......

通过Passport提供的另一个选项是让Alice创建个人访问令牌并将其存储在她的网站后端作为用于进行身份验证的令牌。但Laravel文档似乎暗示个人访问令牌用于测试和开发目的,这让我对生产插件的这条路线持谨慎态度。另外,没有使用PAT可以做上面我想要的事情,因为PAT只是在请求头中传递了吗?或者,通过SSL进行API交互这一事实可以缓解这个问题吗?

我是否需要通过Passport来实现我想要的目标?还有更好的方法吗?

我一直在阅读自己的圈子,试图了解这种设置的最佳做法是什么。对不起,如果这个问题不够集中,但如果有人有任何好的建议,或者能为我澄清一些事情,我会非常感激!

0 个答案:

没有答案