SignSecretKeyController.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace api\controllers;
  3. use Yii;
  4. use common\helpers\EncryptionHelper;
  5. use common\helpers\StringHelper;
  6. /**
  7. * 签名加密控制器 - Test
  8. *
  9. * Class SignSecretKeyController
  10. * @package api\controllers
  11. * @author jianyan74 <751393839@qq.com>
  12. */
  13. class SignSecretKeyController extends OnAuthController
  14. {
  15. public $modelClass = '';
  16. /**
  17. * 公钥
  18. *
  19. * @var string
  20. */
  21. protected $appId = 'doormen';
  22. /**
  23. * 密钥
  24. *
  25. * @var string
  26. */
  27. protected $appSecret = 'e3de3825cfbf';
  28. /**
  29. * 不用进行登录验证的方法
  30. * 例如: ['index', 'update', 'create', 'view', 'delete']
  31. * 默认全部需要验证
  32. *
  33. * @var array
  34. */
  35. protected $authOptional = ['index', 'create'];
  36. /**
  37. * 生成测试带签名秘钥的url
  38. *
  39. * 关于创建appId和appSecret可自行生成
  40. *
  41. * @return array|\yii\data\ActiveDataProvider
  42. */
  43. public function actionIndex()
  44. {
  45. $paraStr = EncryptionHelper::createUrlParam([
  46. 'appId' => $this->appId,
  47. 'time' => time(),
  48. 'nonceStr' => StringHelper::random(32),
  49. 'mobile' => '15888888888',
  50. ], $this->appSecret);
  51. return [
  52. 'url' => Yii::$app->request->hostInfo . '/api/sign-secret-key/create?' . $paraStr,
  53. 'method' => 'post',
  54. 'explain' => '请用post请求该链接进行测试带签名验证'
  55. ];
  56. }
  57. /**
  58. * 校验签名是否正确
  59. *
  60. * @return bool
  61. * @throws \yii\web\UnprocessableEntityHttpException
  62. */
  63. public function actionCreate()
  64. {
  65. return EncryptionHelper::decodeUrlParam(Yii::$app->request->get(), $this->appSecret);
  66. }
  67. }
粤ICP备19079148号