为了账号安全,请及时绑定邮箱和手机立即绑定

laravel5.2如何做api服务

laravel5.2如何做api服务

PHP
慕雪6442864 2019-03-09 18:32:25
  目前项目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那一套拿过来在中间件里验证,似乎不太优雅?谢谢!
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 408 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信