如何使用另一个 API 的用户群在 laravel 中设置身份验证?

Posted

技术标签:

【中文标题】如何使用另一个 API 的用户群在 laravel 中设置身份验证?【英文标题】:How to set up a authentication in laravel using the user base of another API? 【发布时间】:2017-02-26 11:12:06 【问题描述】:

所以我在我的 laravel 应用程序中使用 Process Maker 来完成很多工作。但是我的雇主不喜欢他们的 API,我个人也不喜欢。他们太混乱了。另外,我们不需要所有功能。

所以我在 laravel 本身中创建 API 来使用这些 API 并将传入和传出的数据转换为我的偏好。由于 PM 中有 OAuth2,我们正在使用它。

但是我们也需要在我们的系统中进行身份验证。所以我们使用 JWT 令牌。当需要在我的应用程序中使用 JWT 令牌时,它会保存 PM 应用程序的访问令牌。

我的问题是,现在我使用的是 PM 的用户群,我在 laravel 中的策略失败了,使用这些策略构建的旧 API 也失败了。原因是我的应用程序中的用户表不再真正拥有用户并且他们的权限失败。

那么在 laravel 中使用 User 模型并使用 $connection$table 属性将其连接到 PM 的用户表是一个好主意,或者最好破解一个非 eloquent 基本用户模型并让 laravel使用它进行身份验证。该模型将使用 PM 的 API 来获取用户等。

有没有人在使用 laravel 时有过类似的经历,什么是合适的解决方案?因为我真的很困惑如何处理这种情况。

【问题讨论】:

也许作为替代方案,您可以尝试通过插件扩展 processmaker 的其余 api,以便您可以修改端点或根据现有端点创建新端点 wiki.processmaker.com/index.php/… 您也可以看到这个端点wiki.processmaker.com/3.0/Light_endpoints 不那么混乱。 这听起来像是一个非常漫长而复杂的解决方法,只是为了提供一个 ProcessMaker REST API 的包装器。完全披露,我在 ProcessMaker 工作。话虽如此,我们确实有一个完全符合行业标准的 RESTful API。我们有 OAuth 2.0 和 RESTful 资源。你不喜欢它到底是什么?如果有什么需要改进的地方,我很乐意将其带回产品管理部门并加以改进。 【参考方案1】:

有一个rest api可用于在processmaker中获取用户列表。首先你需要注册一个api

(参考:)Click here

如果用户消费你需要指定参数:

'grant_type'    = 'password',
'scope'         => '*',       //set to 'view_process' if not changing the process
'client_id'     => YYYY45435,
'client_secret' => XXX543543, 
'username'      => jemiris,
'password'      => jfi83

【讨论】:

以上是关于如何使用另一个 API 的用户群在 laravel 中设置身份验证?的主要内容,如果未能解决你的问题,请参考以下文章

如何调试来自 ReactJs(另一个项目)客户端的 Laravel API 请求?

Laravel 中间件 API 认证

Laravel JWT API 令牌处理

将多个变量发送到laravel Api资源

Laravel 8 tymon/jwt-auth 使另一个用户的令牌无效

如何通过ajax fetch api响应将从laravel控制器接收到的数据发送到另一个页面