Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel Auth:它怎么知道我登录了_Php_Authentication_Laravel_Server Side - Fatal编程技术网

Php Laravel Auth:它怎么知道我登录了

Php Laravel Auth:它怎么知道我登录了,php,authentication,laravel,server-side,Php,Authentication,Laravel,Server Side,我在Laravel中构建了一个简单的API。有两个端点:/register和/login。 如果我从我的移动应用程序呼叫/登录,我…很好…已登录。如果我呼叫/注册,则响应为您已登录!。预期的行为,因为我使用Auth::检查用户是否已登录。 这是我的问题:laravel如何知道我是已经登录的同一个用户?请注意,我没有在我的/注册表中传递任何用户信息,而且我没有使用浏览器,所以我认为客户端没有cookie 请注意,我不是在寻找解决方案,因为API已经按预期工作了。我只是好奇Auth::check如何

我在Laravel中构建了一个简单的API。有两个端点:/register和/login。 如果我从我的移动应用程序呼叫/登录,我…很好…已登录。如果我呼叫/注册,则响应为您已登录!。预期的行为,因为我使用Auth::检查用户是否已登录。 这是我的问题:laravel如何知道我是已经登录的同一个用户?请注意,我没有在我的/注册表中传递任何用户信息,而且我没有使用浏览器,所以我认为客户端没有cookie


请注意,我不是在寻找解决方案,因为API已经按预期工作了。我只是好奇Auth::check如何能够在没有cookie或用户数据的情况下识别已登录的用户


提前感谢

Laravel使用php会话登录/注销。以下是php网站关于会话的一段引述:

PHP中的会话支持包括在后续访问中保留某些数据的方法。这使您能够构建更多定制的应用程序,并提高网站的吸引力

因此,这里它用于保存登录信息


您可以告诉laravel在何处存储此会话信息,并为其设置各种参数。默认情况下,它将它们全部本地存储在服务器的storage/sessions/文件夹中。有关会话的所有信息都在config/session.php中。

进行令牌身份验证对不起,我的问题不够清楚。我不是在寻找解决方案,因为API已经按预期工作了。我只是好奇Auth::check如何在没有Cookie或用户数据的情况下识别登录用户我相信Laravel可能有不同的身份验证配置,但我的经验是,在默认身份验证中,Laravel确实使用Cookie进行身份验证。如果不是用浏览器的话,你是如何调用路由的?我是从一个移动应用程序调用路由的,我是一个网络开发人员,所以我不知道它是如何完成的,我想它使用了cUrl或类似的东西;这就是为什么我认为它没有使用cookiesAuth::check能够识别登录的用户,因为即使您的应用程序是API,会话仍在创建中。无论您使用哪个客户端发出移动应用程序请求,显然都支持cookies,否则它将无法工作。好的,但是如果有人使用移动应用程序登录,它将如何存储此客户端的会话?从一个请求到下一个请求,它能识别一个移动应用吗?这是通过api身份验证完成的,最常见的是OAuth。Laravel并没有提供一种开箱即用的好方法,但是Laravel有各种OAuth库可以使这变得容易。要扩展,Auth::check在这些环境中不起作用。检查传入每个请求的令牌的有效性和权限admin、user,然后拒绝访问或允许访问特定路由。在一个简单的视图中,api auth的工作原理如下:oauth出于安全原因更复杂:1用户向服务器发送登录信息2服务器检查它,如果它有效,生成一个令牌并发送给用户3令牌存储在数据库中,用户发出的每个想要访问私有路由的请求都必须有这个令牌。我错过的是Laravel Auth类——在Laravel框架中已经找到的Auth类——如何能够与一个据我所知不使用cookies的移动应用程序保持会话。我的意思是:应用程序向用户发出请求/登录并成功登录用户。10分钟后,应用程序向/注册发出请求,并且Auth::check知道它已经有一个有效会话…但它是如何知道的?据我所知,开箱即用的laravel安装和没有cookie的移动应用程序无法产生此结果。如果seasion信息存储在数据库中或作为cookie存储在手机上,那么这是可以实现的。