如何跟踪用户是否使用api登录?

问题描述 投票:1回答:1

我正在使用cakePHP创建api。我已经为用户登录创建了一个api。这个登录功能运行正常。这是登录功能 -

public function login(){

    if ($this->request->is('post')) {
        $user = $this->Auth->identify();
    }
} 

现在,我面临的问题是,我如何测试用户登录的其他api?在Web应用程序中,它可以通过默认的auth系统完成($ this-> Auth-> user())。但我没有得到如何检查这个用户是否从另一个api登录。我是否需要向每个api请求发送api参数?或任何其他建议?

注意:我无法在标头中发送任何令牌。因为在标题中我发送jwt令牌。因为在我的应用程序中有两种身份验证。一个是登录还是不登录?另一个是依赖用户的一些其他输入。这是由jwt处理。所以jwt令牌我已经通过标头发送了。所以标头已被使用。

api cakephp-3.0
1个回答
1
投票

有几点需要澄清。

在常规应用程序中,用户使用发布请求登录,并且在成功进行身份验证后,将创建会话。此会话是用户在以下每个请求中提供的一些信息,然后服务器识别该用户。这是由Auth组件在其默认设置中完成的。

在API中,您可以执行相同的操作:用户登录,接收会话并在每个后续请求上附加会话cookie类对象。 (Example of such a Python client。)然而,这不被认为是良好的做法,因为API应该是无状态的(因此不需要像cookie这样的东西)。使用令牌的解决方案,例如一些秘密令牌的哈希值和时间戳。 Auth组件也很好地支持了这一点。设置完成后,您可以像往常一样调用$this->Auth->user(),它会返回false或一组用户信息。见下面的链接。

请注意,默认情况下,此身份验证类型将阻止未经身份验证的用户,因此除非您将网页设为公开,否则您永远不会看到->user()返回false。

也可以看看:

  • (Qazxswpoi)
© www.soinside.com 2019 - 2024. All rights reserved.