当前位置: 首页 > 知识库问答 >
问题:

Laravel认证不保留

陶乐生
2023-03-14

我创建了一个API来登录我的web应用程序。检查参数后,使用Auth方法:loginUsingId()和要登录的用户的id
在正确验证之后,实际上执行echo Auth::user()可以正确显示用户属性
但是,通过重定向到另一个项目页面,我将不再登录门户并显示登录页面
用户的会话似乎没有保留或根本没有创建
我使用Laravel 5.6。我没有路线的中间件。

共有1个答案

谭富
2023-03-14

每次您的页面访问API时,它实际上都在与一个全新的API实例进行对话。

这样想吧。您的“登录”终结点实际上并没有告诉应用编程接口让某人登录。它告诉它仅仅验证调用者的声明,即给定的密码属于给定的用户,故事结束。如果您想从用户界面的角度将身份验证转化为实际的“登录”行为,还需要采取其他步骤。

如果Laravel正在为您的站点提供刀片文件,那么情况就不同了。它会立即为您生成一个Php会话,并将会话密钥cookie发送到浏览器,以便在后续请求中使用。

与会话密钥类似,为了维护网站和单独API之间的会话,您需要在每个后续调用中包含一个令牌。您需要登录endpoint在成功身份验证后提供该令牌。

护照是一种方法,但对你的情况来说可能有些过分。Passport适用于处理用户、客户端和授权权限。但是如果你想要的只是身份验证,而你不关心控制他们可以访问的内容,那么我强烈推荐泰蒙JWT-Auth。

Passport和JWT Auth都在“授权”标题中使用“不记名代币”。不过还有其他种类,比如“基本代币”。基本令牌只是用户名和密码的编码串联。Laravel通过路由中间件支持这一点,但我仍然建议使用JWT。

JWT的一个好处是,您实际上可以在令牌本身中包含无关数据。如果您需要的话,它可以让您更好地使用Passport(OAuth2),因为它不要求您的客户端更改其身份验证方法。

 类似资料:
  • 我一直试图让Laravel的新版本(5.2)与一个简单的网络应用程序一起工作。然而,我在身份验证方面遇到了问题。 应用程序的所有页面都包括一个导航视图部分,使用Auth::user()- 为了做到这一点,我创建了一个页面控制器,它在构造函数中加载auth中间件: 如果用户已登录,则此操作非常有效。但是,如果用户没有登录,则要求他们在每个页面上登录。即使是像“联系人”或“关于”这样显然不需要身份验证

  • 我是Laravel的新手,我听说Laravel的登录和注册系统是默认的。然而,我不能利用它。我已经将登录和注册视图放在资源/视图/的Auth目录中。 我在: 路线是: 但我得到了这个错误: AuthenticatesAndRegistersUsers中的FatalErrorException。php第11行:为illumb\Foundation\Auth\AuthenticatesUsers::g

  • 我在办公室里有一个本地服务器,它存储网络用户的所有Active Directory详细信息,例如用户名、电子邮件、电话号码、普通广告等。 我有一个PHP脚本,它使用LDAP查询检索内部网络上当前登录用户的详细信息,从而允许当前登录用户访问这些详细信息。 这还用于用用户预填充用户数据库。 然后,我有一个Laravel应用程序,它将这些细节用作身份验证,绕过标准的登录屏幕。 目前,我将用户发送到一个内

  • 如何使用自定义身份验证方法对通道的用户进行身份验证? 例如,在我的应用程序中,我为我的API使用令牌认证(存储在每个用户的数据库中),通过标头传递,并由自定义中间件读取。 如何使用这些通道的自定义身份验证方法控制访问?客户端和服务器端如何?我使用socket.io和Laravel文档非常不清楚授权方法是如何工作的套接字。 使用案例: 我使用默认的Laravel迁移将用户存储在DB中。然而,我的应用

  • 早些时候,当我使用Laravel5.2时,我使用了第三方软件包https://github.com/tymondesigns/jwt-auth/用于进行基于JWT的身份验证。我们只需要传递用户名和密码就可以获得令牌。 现在在laravel 5.3中,随着passport的引入,我想进行基于JWT的身份验证,但passport要求我指定客户端id和客户端密码以及用户名和密码。这在tymondesig

  • 我有一个使用Laravel 4和AngularJS构建的应用程序。除了注销之外,一切都很好。如果我直接访问路由(/user/logout),用户将成功注销并重定向回 /login页面。但是,当我尝试链接到视图中的laravel注销路由时,它不起作用。我认为角是阻塞。我试着玩了一些东西,但总是,网址在地址栏中出现一瞬间,什么也没发生。 从应用程序/视图/相册/index.blade.php publ