laravel5.2如何做api服务
目前项目laravel框架版本是5.2,php版本是5.6,想要做个api服务供其他端请求数据,看了下passport是需要php7版本的,然后翻了下5.2文档有个无状态的HTTP基本认证AuthenticateOnceWithBasicAuth,按照文档简单的两段代码试着配了运行下,发现授权不通过也可以访问。。
public function handle($request, Closure $next)
{
return Auth::onceBasic() ?: $next($request);
// 下面这种方式也不会提示授权
$r = Auth::onceBasic();
/* 打印这个$r出来的是
#content: "Invalid credentials."
#version: "1.0"
#statusCode: 401
#statusText: "Unauthorized"
*/
if (!Auth::onceBasic()) {
if ($request->ajax() || $request->wantsJson()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('login');
}
}
return $next($request);
}
然后跟踪到了IlluminateAuthSessionGuard.php,有个getBasicCredentials函数,看着像是要传递用户名密码的,偶然有一次弹出了浏览器的输入密码账号界面(应该就是这样来授权了。。),输完后可以访问,但是清了cookie什么的再刷新直接出来结果页了,没有输密码界面。
如果是这种直接传账号密码或者传个token的验证模式的话,似乎不是很安全啊,之前没用laravel的时候api调用话按照类似oauth那种拼参数拼token升序然后md5什么的实现的,但是这项目限制,没法装passport插件,想问下有兼容laravel5.2.45,php5.6.13的用于api服务的插件嘛或者直接把拼参数拼token升序MD5那一套拿过来在中间件里验证,似乎不太优雅?谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用https://github.com/lucadegasp...