微信網頁掃碼登入的實現

2022-06-20 07:48:12 字數 2621 閱讀 1426

文件1:

$redirect_uri=urlencode($redirect_uri);//

該**需要url編碼

$scope="snsapi_login";//

."&response_type=code&scope=".$scope."&state=state#wechat_redirect";

//請求返回的結果(實際上是個html的字串)

$result = file_get_contents($url

);//

$result = str_replace("/connect/qrcode/", "", $result

);return

$result; //

返回頁面

這樣子就會返回乙個這樣的頁面,掃瞄後呼叫$redirect_uri,

2.內嵌js顯示:

這裡就是通過js端例項化乙個物件即可,首先在標籤內新增如下js檔案,

其次在html中定義乙個div包含***,

最後在$(document).ready()內進行例項化:

$(document).ready(function()

);});

注意其中href裡指向的css檔案必須放在https協議下才能引用的到,不然頁面上就是預設樣式(顯示上是乙個比較大的***,你無法調節***的大小,位置,太痛苦了)。最後部分頁面大概長成這樣,這裡的***大概只有140px:

走完這五步你就拿到掃碼使用者的所有資訊了,之後再寫上自己需要的的**邏輯即可(如重定向或者登陸),在**裡的表現形式如下:

//**

public function codeinfo()

}

文件2:

訪問後

掃碼後手機端效果

入口**如下:

<?php 

//-------配置

$callback = ''; //**位址

session_start();

//-------生成唯一隨機串防csrf攻擊

$state = md5(uniqid(rand(),true));

$_session["wx_state"] = $state; //存到session

$callback = urlencode($callback);

header("location: $wxurl");

?>

**檔案callback.php
<?php 

//驗證csrf攻擊

if($_get['state']!=$_session["wx_state"])

$ch = curl_init();

curl_setopt($ch, curlopt_ssl_verifypeer, false);

curl_setopt($ch, curlopt_returntransfer, true);

curl_setopt($ch, curlopt_url, $url);

$json = curl_exec($ch);

curl_close($ch);

$arr=json_decode($json,1);

//得到 access_token 與 openid

print_r($arr);

$url=''.$arr['access_token'].'&openid='.$arr['openid'].'&lang=zh_cn';

$ch = curl_init();

curl_setopt($ch, curlopt_ssl_verifypeer, false);

curl_setopt($ch, curlopt_returntransfer, true);

curl_setopt($ch, curlopt_url, $url);

$json = curl_exec($ch);

curl_close($ch);

$arr=json_decode($json,1);

得到 使用者資料

print_r($arr);

?>

pc端最終效果如下:

微信網頁掃碼登入的實現

public function weixindenglu public function codeinfo else else insert user db table users insert data user id db table users where username infoarray...

微信網頁掃碼登入的實現

redirect uri urlencode redirect uri 該 需要url編碼 請求返回的結果 實際上是個html的字串 result file get contents url result str replace connect qrcode result return result...

微信網頁掃碼登入的實現

redirect uri urlencode redirect uri 該 需要url編碼 scope snsapi login 請求返回的結果 實際上是個html的字串 result file get contents url result str replace connect qrcode r...