You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
762 B

7 years ago
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure;
  4. use App\Common\ReturnData;
  5. use App\Common\Token;
  6. class Sign
  7. {
  8. /**
  9. * Sign验证
  10. */
  11. public function handle($request, Closure $next)
  12. {
  13. $app_key = $request->header('app_key') ?: $request->input('app_key');
  14. $app_time = $request->header('app_time') ?: $request->input('app_time');
  15. $sign = $request->header('sign') ?: $request->input('sign');
  16. if (empty($app_key) || empty($app_time) || empty($sign))
  17. {
  18. return ReturnData::create(ReturnData::FORBIDDEN);
  19. }
  20. if (!Token::checkSign($app_key, $app_time, $sign))
  21. {
  22. return ReturnData::create(ReturnData::SIGN_ERROR);
  23. }
  24. return $next($request);
  25. }
  26. }