Laravel:针对远程检查凭据的系统进行身份验证

Posted

技术标签:

【中文标题】Laravel:针对远程检查凭据的系统进行身份验证【英文标题】:Laravel: Authenticate against system that checks credentials remotely 【发布时间】:2014-10-03 19:32:36 【问题描述】:

我创建了自己的身份验证提供程序。问题是我必须通过soap/xml调用对远程系统进行身份验证。

此调用接受用户名和密码,如果登录成功则返回用户信息。

这种方法与 Laravel 完全不同,在 Laravel 中,您首先必须查找用户,然后检查凭据。

我认为我可以在retrieveByXXX 方法中返回一个虚拟用户,并在validateCredentials 方法中执行soap xml 调用,并使用适当的数据填充传递的用户。 Laravel 默默地允许这样做,但对 Auth::user() 的引用会返回虚拟信息。

在 Laravel 中有没有办法解决这个问题?我可以为此添加一个网络服务,但如果可能的话我宁愿不这样做。

【问题讨论】:

我继续添加了一个用于获取用户和凭据的 Web 服务调用。然后我根据身份验证提供程序接口使用 laravel 进行了验证。最终使用带有一些自定义属性的 GenericUser。 【参考方案1】:

你可以使用

Auth::once($credentials)

来自文档:

为单个请求登录用户

您也可以使用 once 方法将用户登录到应用程序中以获得单个请求。不会使用任何会话或 cookie。

【讨论】:

以上是关于Laravel:针对远程检查凭据的系统进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5 - 针对两个表进行身份验证

是否可以使用非交互式的默认Windows凭据对远程Git存储库进行身份验证?

在 laravel 多身份验证中为单个守卫自定义登录凭据

无需手动输入凭据即可进行 SSO 身份验证

强制 Laravel 使用旧版身份验证登录用户

如何检查用户是不是通过 Laravel 上的 cookie 会话进行身份验证?