TokenController.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: blade
  5. * Date: 2018/2/1
  6. * Time: 16:52
  7. */
  8. namespace App\Http\Controllers\Admin;
  9. use App\Http\Controllers\Controller;
  10. use Illuminate\Http\Request as Req;
  11. use Illuminate\Support\Facades\DB;
  12. class TokenController extends Controller
  13. {
  14. /**
  15. * @param $ver_data 含时间的数据数组
  16. * @param $ver_sign 传入验证字符串
  17. * @param $token 后台token
  18. * @return int
  19. */
  20. function check($ver_data,$ver_sign,$token){
  21. $res=$this->checkTime($ver_data['time']);
  22. if($res<0){
  23. return $res;
  24. }
  25. return $this->checkToken($ver_data,$ver_sign,$token);
  26. }
  27. /**
  28. * @param $ver_data 数据
  29. * @param $sign 传入的校验串
  30. * @param $token 正确的token
  31. * @return int
  32. */
  33. private function checkToken($ver_data,$sign,$token){
  34. krsort($ver_data);
  35. $right_sign=md5(http_build_query($ver_data).'&token='.$token);
  36. if($right_sign!=$sign){
  37. return -3020035024;//校验失败
  38. }
  39. return 1;
  40. }
  41. //时间检验
  42. private function checkTime($time){
  43. //时间检验
  44. if($time<(time()-10)){
  45. return -3020035023;//请求超时
  46. }
  47. return 1;
  48. }
  49. }