phpcmsV9 で使用される QQ ログインは依然として OAuth1.0 ですが、現在 Tencent は OAuth1.0 を使用する Web サイトをレビューしていません。これは、PC を使用するウェブマスターにとって大きな落とし穴です。 phpcms フォーラムのクラスメートが作成したプラグインを修正した後、QQ ログインは完全に実装され、まだバグは見つかっていません。
実装手順:
①phpcmsmodulesmemberindex.phpファイルを開き、以下のコードを挿入する場所を見つけます(PCのデフォルトQQで直接ログインできます)。
//QQ ログイン oAuth2.0
ublic 関数 public_qq_login2(){
$appid = pc_base::load_config('システム', 'qq_appid');
pc_base::load_app_class('qqOAuth2','',0);
$info = new qqOAuth2($appid,$appkey,$callback);
$userid = $r['userid']
$グループID = $r['グループID']
$ユーザー名 = $r['ユーザー名']
$nickname = emptyempty($r['nickname']) $username : $r['nickname'];
$this->db->update(array('lastip'=>ip(), 'lastdate'=>SYS_TIME, 'nickname'=>$me['name']),array('userid '=>$ユーザーID));
if(!$cookietime) $get_cookietime = param::get_cookie('cookietime');
$_cookietime = $cookietime ? intval($cookietime) : ($get_cookietime ? $get_cookietime : 0);
$phpcms_auth = sys_auth($userid."t".$password, 'ENCODE', $phpcms_auth_key);
param::set_cookie('auth', $phpcms_auth, $cookietime);
param::set_cookie('_groupid', $groupid, $cookietime);
param::set_cookie('cookietime', $_cookietime, $cookietime);
showmessage(L('login_success').$synloginstr, $forward);
}その他{
//データベースに存在しないため、完全な情報ページに移動します。ページプリセットユーザー名 (QQ は UTF8 エンコードを返し、必要に応じてトランスコードします)
$user = $info->get_user_info();
$_SESSION['connectid'] = $_SESSION['openid']
;$_SESSION['from'] = 'qq';
}
}
}
}
④ アプリIDとアプリキーを入力し、キャッシュを更新します。
⑤ phpmyadmin にログインし、v9_member テーブルの connectid フィールド (またはカスタム フィールド) を見つけ、タイプを「char(255)」に変更します。これは、phpcms のデフォルトが 15 桁であるためです。そこで、これを直接 255 に完全に変更しました。これにより、Tencent の他のサードパーティ Web サイトのアカウント (淘宝網、Alipay、Baidu、360 およびその他のサードパーティ アカウントなど) に関係なく、データ バインディングを完了できます。 (この記事は 7 月 27 日に追加され、ネチズン liuyang814 からメールでリマインドされました)
Sina Weibo と Tencent Weibo のコードは後でアップロードされます。 phpcms の周辺コードは非常に少ないため、オンラインで見つけることもできません。