| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- <?php
- /**
- * 重庆赤晓店信息科技有限公司
- * https://www.chixiaodian.com
- * Copyright (c) 2023 赤店商城 All rights reserved.
- */
- /*
- * @Author: your name
- * @Date: 2021-03-02 09:50:20
- * @LastEditTime: 2021-04-29 14:40:28
- * @LastEditors: Please set LastEditors
- * @Description: In User Settings Edit
- * @FilePath: \admin_php\modules\client\behaviors\Auth.php
- */
- namespace app\modules\alliance\behaviors;
- use app\models\SaasUser;
- use app\models\User;
- use yii\base\ActionFilter;
- use Yii;
- use yii\base\BaseObject;
- use yii\helpers\Json;
- use yii\web\Response;
- /**
- * Class Auth
- * @package app\modules\client\behaviors
- */
- class Auth extends ActionFilter
- {
- // 不验证登录白名单
- const ALLOW_LIST = [
- 'alliance/store/search-params',
- //'alliance/user/index',
- 'alliance/default/store',
- 'alliance/diy/index',
- 'alliance/default/coupon-list',
- 'alliance/diy/goods',
- 'alliance/diy/goods',
- 'alliance/default/topic-type',
- 'alliance/diy/mch',
- 'alliance/default/topic-list',
- 'alliance/passport/login',
- 'alliance/diy/template-unit',
- 'alliance/diy/template',
- 'alliance/passport/login',
- 'alliance/passport/send-code',
- 'alliance/user/user-empower',
- 'alliance/user/user-binding',
- 'alliance/upload/upload-image',
- 'alliance/upload/upload-video',
- 'alliance/diy/shop',
- 'alliance/default/cat-list',
- 'alliance/default/goods-list',
- 'alliance/goods/goods',
- 'alliance/default/browse',
- 'alliance/goods/address',
- 'alliance/goods/goods-recommend',
- 'alliance/goods/mch-recommend',
- 'alliance/default/comment-list',
- 'alliance/goods/get-goods-youhui',
- 'alliance/default/goods-attr-info',
- 'alliance/mch/index/location-info',
- 'alliance/default/district',
- 'alliance/mch/index/mch-list',
- 'alliance/mch/index/shop',
- 'alliance/shop/nearby',
- 'alliance/default/get-brand-list',
- 'alliance/cart/list',
- 'alliance/goods/guess-like',
- 'alliance/default/buy-data',
- 'alliance/passport/auth-phone',
- 'alliance/store/list',
- 'alliance/store/search-params',
- 'alliance/passport/platform-auth-phone',
- 'alliance/alipay/passport/auth',
- 'alliance/alipay/passport/phone',
- 'alliance/saas/search-keyword',
- 'alliance/saas/add-history',
- 'alliance/diy/new-index',
- 'alliance/diy/store-info',
- 'alliance/diy/system-template-list',
- 'alliance/goods/new-goods-recommend',
- 'alliance/default/article-detail',
- 'alliance/default/location-content',
- 'alliance/store/mp-audit',
- 'alliance/store/server-mp-audit',
- 'alliance/new-merchant/face-pay-config',
- 'alliance/new-merchant/face-pay',
- 'alliance/store/goods_list',
- 'alliance/saas/fpay',
- 'alliance/new-merchant/get-give-integral',
- 'alliance/default/store-info',
- 'alliance/saas/check-favorite',
- 'alliance/merchant/merchant-info/index',
- 'alliance/passport/code',
- 'alliance/default/saas-coupon-list',
- 'alliance/store-activity/get-district-list',
- 'alliance/store-activity/activity-goods-list'
- ];
- public function beforeAction($action)
- {
- if (get_params('version')) {
- $mini_type = get_params('mini_type');
- if (isset($mini_type) && $mini_type == 'merchant') {
- $version = get_params('version');
- $cache = cacheLock();
- $key = 'store_merchant_version';
- if (!cache_lock($key . '_time', 60 * 5)) {
- $cache->set($key, $version);
- }
- }
- }
- $access_token = input_params('access_token');
- if (!$access_token && in_array(Yii::$app->controller->getRoute(), self::ALLOW_LIST)) {
- return true;
- }
- // 支付宝依然取user表数据
- // if (input_params('platform') == 'alipay') {
- // $user = User::findIdentityByAccessToken($access_token);
- // if ($user) {
- // \Yii::$app->jwt->setUser($user);
- // } else {
- // \Yii::$app->response->format = Response::FORMAT_JSON;
- // \Yii::$app->response->data = [
- // 'code' => 401,
- // 'msg' => '登陆失败'
- // ];
- // return false;
- // }
- // } else {
- // 微信平台目前统一走saas_user表,统一用户
- $saas_user = SaasUser::findIdentityByAccessToken($access_token);
- if (empty($access_token) && $saas_user) {
- \Yii::$app->response->format = Response::FORMAT_JSON;
- \Yii::$app->response->data = [
- 'code' => 401,
- 'msg' => '登录失败'
- ];
- return false;
- }
- if ($saas_user) {
- \Yii::$app->jwt->setSaasUser($saas_user);
- if (input_params('store_id') > 0) {
- $user = User::findOne(['binding' => $saas_user->mobile, 'store_id' => input_params('store_id')]);
- if (!$user) {
- try {
- $user = new User();
- $user->access_token = \Yii::$app->security->generateRandomString();
- $user->binding = $saas_user->mobile;
- $user->type = User::USER_TYPE_NORMAL;
- $user->nickname = substr_replace($saas_user->mobile, '******', 3, 6);
- $user->avatar_url = \Yii::$app->request->hostInfo . \Yii::$app->request->baseUrl . '/web/v1/statics/images/avatar.png';
- $user->username = \Yii::$app->security->generateRandomString();
- $user->password = \Yii::$app->security->generatePasswordHash(\Yii::$app->security->generateRandomString(), 5);
- $user->auth_key = \Yii::$app->security->generateRandomString();
- $user->is_delete = User::USER_NOT_DELETE;
- $user->store_id = input_params('store_id');
- $user->platform = input_params('platform') == 'alipay'?User::USER_FROM_ALIPAY:User::USER_FROM_WECHAT; // 微信
- $user->save();
- } catch (\Exception $e){}
- }
- if (!$user) {
- $user = User::findOne(['binding' => $saas_user->mobile, 'store_id' => input_params('store_id')]);
- }
- \Yii::$app->jwt->setUser($user);
- }
- } else {
- \Yii::$app->response->format = Response::FORMAT_JSON;
- \Yii::$app->response->data = [
- 'code' => 401,
- 'msg' => '登录失败'
- ];
- return false;
- }
- return true;
- }
- }
|