我正在开发一个用于用户管理的微服务,它将由以下人员使用:
需要:
它将是一个纯REST API(没有形式)。
到目前为止,我有:
oauth/token
端点以获取有效的JWT令牌,并使用它成功地通过“auth:api”身份验证调用api/user
。对于我的下一个技巧,我需要配置上面的所有用户管理端点(注册/忘记密码/等),我试图找出最好的方法来做到这一点。我试图避免使用第三方mod的Laravel(dingo,esbenp / larapi等),除非我必须这样做。
这意味着需要实施Auth::routes()
和Passport::routes()
。 Passport::routes()
似乎完全没问题。但Auth::routes()
并非针对REST API设计。
我现在的想法是,在不重新发明轮子的情况下实现标准用户管理功能的最佳方法是重新实现App\Http\Controllers\Auth
命名空间中控制器所消耗的特性。这些是:
由于php traits的工作方式,这可以有选择地完成,只需重新实现必要的功能,如下:
class ForgotPasswordController extends Controller
{
use SendsPasswordResetEmails, MySendsPasswordResetEmails
{
// REPLACE THE HTML FORM WITH A JSON PLACEHOLDER
MySendsPasswordResetEmails::showLinkRequestForm insteadof SendsPasswordResetEmails;
// REPLACE THE HTML RESPONSE WITH A JSON RESPONSE
MySendsPasswordResetEmails::sendResetLinkResponse insteadof SendsPasswordResetEmails;
}
}
它仍然完全可怕,但它似乎是避免重复代码的最佳方法。我想知道:
tbh,我甚至没有开始考虑授权部分,但我认为这将基于身份验证。
谢谢!