禾匠登录授权更新

我的办法是微信小程序前端直接访问后台获取所有信息 ,然后后端更新一处

分别是前端放弃open-type获取信息,直接 @click 走getUserInfo去后端获取

<button v-if="userInfo.nickname==undefined"  
class="loginBtn" style="font-size:30rpx;font-weight: 600;background-color: rgba(0, 0, 0, 0);border:none"
type="text" 
open-type="getUserInfo" 
scope="userInfo" 
@getAuthorize="getUserInfo" 
@click="getUserInfo">
		<text style="color: white;">点击登录</text>
</button>

后端 plugins/wxapp/models/LoginForm.php 强制访问js接口获取个人信息


namespace app\plugins\wxapp\models;

use app\forms\api\LoginUserInfo;
use app\models\UserInfo;
use app\plugins\wxapp\Plugin;

class LoginForm extends \app\forms\api\LoginForm
{

    public function getUserInfo()
    {
        $scope = 'auth_info';
        /** @var Plugin $plugin */
        $plugin = new Plugin();
        $postData = \Yii::$app->request->post();
        if (isset($postData['rawData'])) {
            $rawData = $postData['rawData'];
            $postUserInfo = json_decode($rawData, true);
//            $data = $plugin->getWechat()->decryptData(
//                $postData['encryptedData'],
//                $postData['iv'],
//                $postData['code']
//            );

            $data = $plugin->getWechat()->jsCodeToSession($postData['code']);
            $openId = $data['openid'];
            $unionId = $data['unionid'] ?? '';
        } else {
            $scope = 'auth_base';
            $data = $plugin->getWechat()->jsCodeToSession($postData['code']);
            $openId = $data['openid'];
            $unionId = $data['unionid'] ?? '';
            $postUserInfo['nickName'] = '';
            $postUserInfo['avatarUrl'] = '';
        }
        $userInfo = new LoginUserInfo();
        $userInfo->username = $openId;
        $userInfo->scope = $scope;
        $userInfo->nickname = isset($data['nickName']) ? $data['nickName'] : $postUserInfo['nickName'];
        $userInfo->avatar = isset($data['avatarUrl']) ? $data['avatarUrl'] : $postUserInfo['avatarUrl'];
        $userInfo->platform_user_id = $openId;
        $userInfo->platform = UserInfo::PLATFORM_WXAPP;
        $userInfo->unionId = $unionId;
        return $userInfo;
    }
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值