Php 将API与Laravel Web App分离后的基本身份验证
我正在重构代码,从控制器中提取API 在我的API中,我通常需要知道用户的角色,以便显示正确的数据,所以我需要用户的数据 我的第一个想法是根据用户/密码使用基本身份验证对API访问进行身份验证 我的第一个想法是实现一个过滤器,将所有API放在同一个routes组中 中间件看起来像:Php 将API与Laravel Web App分离后的基本身份验证,php,api,laravel,authentication,Php,Api,Laravel,Authentication,我正在重构代码,从控制器中提取API 在我的API中,我通常需要知道用户的角色,以便显示正确的数据,所以我需要用户的数据 我的第一个想法是根据用户/密码使用基本身份验证对API访问进行身份验证 我的第一个想法是实现一个过滤器,将所有API放在同一个routes组中 中间件看起来像: class simpleAuthMiddleware { /** * Handle an incoming request. * * @param \Illuminate\Ht
class simpleAuthMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
return Auth::onceBasic('email') ?: $next($request);
}
}
它起作用了,当执行一个请求时,一个基本的身份验证弹出窗口在导航过程中打扰了我
然后,我试着用这样的口吻:
$response = $client->request('GET', '/tournaments', [
'auth' => [Auth::user()->email,
Auth::user()->password]
]);
我在实现它时遇到了一些问题,因为它使用的是未加密的密码,而且我的数据库中只有bcrypt密码。此外,我还通过Google/Facebook管理来自社交名流身份验证的用户,这些用户没有密码
然后我想我可以为每个用户放置一个令牌,并为我的API实现一个令牌安全性。但令牌对于授予或不授予对API的访问权是很好的,但对我来说,它不应该用于检索用户数据。即使我选择了一个256字符的令牌,它也存在着比2个用户获得相同令牌的远程可能性。
此外,这意味着我应该在每个API调用中进行额外的查询,以获取用户信息
所以我需要做的是:
我需要的是简单的东西,问题似乎并不太复杂。我看到Laravel Spark将处理JWT,所以我将尝试等待Spark释放。与此同时,我该怎么做呢?方法是实现JWT。让它工作起来很容易 请按照教程进行操作: 了解JWT:
你也可以用它来做它相当容易。它对小型系统是免费的。您可以自己简单地实现JWT吗?是的,我做到了,而且非常喜欢!但我仍然想知道,如果社交名流用户没有密码,我是怎么做到的