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:针对远程检查凭据的系统进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章