Ejemplo n.º 1
0
 public function bindToUser(WechatUser $wechatUser, $role_name = RoleModel::WECHATER, $cache = TRUE)
 {
     $userModel = config('auth.model');
     $user = !empty($wechatUser->uid) ? (new $userModel())->find($wechatUser->uid) : (new $userModel())->get($wechatUser->unionid);
     empty($user) && ($user = (new $userModel())->add(['username' => $wechatUser->unionid, 'password' => (new $userModel())->auto_password($wechatUser->unionid)], $role_name));
     $wechatUser->update(['uid' => $user->getKey()]);
     $hashkey = 'update-user-from-wechat-' . $user->getKey();
     if (!$cache || is_null(Cache::get($hashkey, null))) {
         $user->update(['nickname' => $wechatUser->nickname, 'gender' => $wechatUser->gender, 'avatar_aid' => $wechatUser->avatar_aid]);
         Cache::put($hashkey, time(), 1440);
         //0.5 day
     }
     return $user;
 }