日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢(xún)客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

近年來(lái),隨著社交網(wǎng)絡(luò)的興起和智能手機(jī)的普及,微信成為了人們?nèi)粘I钪胁豢苫蛉钡囊徊糠帧T诨ヂ?lián)網(wǎng)應(yīng)用的領(lǐng)域,實(shí)現(xiàn)微信登錄功能是非常必要的一部分。眾所周知,微信的授權(quán)機(jī)制采用OAuth 2.0授權(quán)機(jī)制,這給我們的微信登錄功能實(shí)現(xiàn)帶來(lái)了很大的方便。下面我們將詳細(xì)介紹如何通過(guò)PHP語(yǔ)言來(lái)實(shí)現(xiàn)微信登錄功能。

一、微信開(kāi)發(fā)平臺(tái)配置

登錄[微信開(kāi)放平臺(tái)](https://open.weixin.qq.com)注冊(cè)賬號(hào),注冊(cè)完成后,進(jìn)入微信開(kāi)放平臺(tái)管理中心。

點(diǎn)擊中心頁(yè)面的“管理公眾號(hào)”菜單,輸入需要接入的微信公眾號(hào)信息。

經(jīng)過(guò)微信開(kāi)放平臺(tái)的認(rèn)證之后,我們需要獲取微信開(kāi)放平臺(tái)的AppID和AppSecret,記錄在登錄代碼中。登錄[微信開(kāi)放平臺(tái)](https://open.weixin.qq.com),進(jìn)入管理中心,選擇“移動(dòng)應(yīng)用”,然后選擇“添加移動(dòng)應(yīng)用”。

填寫(xiě)移動(dòng)應(yīng)用基本信息并提交審核,審核批準(zhǔn)后即可獲得AppID和AppSecret。

二、PHP代碼實(shí)現(xiàn)

1、構(gòu)建微信登錄鏈接

<?php
$appid = “your_appid”; //appid
$redirect_uri = urlencode('http://yourdomain.com/login.php'); //登錄成功回調(diào)網(wǎng)址,請(qǐng)確保此地址跟公眾號(hào)設(shè)置的授權(quán)回調(diào)頁(yè)面路徑一致。
$scope = 'snsapi_userinfo'; //snsapi_base 或 snsapi_userinfo
$url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' . $appid . '&redirect_uri=' . $redirect_uri . '&response_type=code&scope=' . $scope . '&state=STATE#wechat_redirect';
header('Location:' . $url);
exit;
?>

上述代碼中,我們需要填寫(xiě)$appid$redirect_uri$scope參數(shù)。其中,$appid為微信開(kāi)放平臺(tái)分配給我們的AppID$redirect_uri為用戶(hù)授權(quán)后的回調(diào)網(wǎng)址,需要跟公眾號(hào)設(shè)置的授權(quán)回調(diào)頁(yè)面一致;$scope分為snsapi_basesnsapi_userinfo,前者只能獲得用戶(hù)的openid,而后者可獲得用戶(hù)的基本信息。

2、獲取access_token和openid

<?php
$appid = 'your_appid'; //appid
$secret = 'your_appsecret'; //appsecret
$code = $_GET['code']; //網(wǎng)頁(yè)授權(quán)code
$access_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $appid . '&secret=' . $secret . '&code=' . $code . '&grant_type=authorization_code'; //獲取access_token和openid的鏈接
$access_token = file_get_contents($access_token_url);
$access_token_arr = json_decode($access_token, true); //將返回的json字符串轉(zhuǎn)為數(shù)組
?>

在這段代碼中,我們通過(guò)用戶(hù)成功授權(quán)后返回的code,再將code傳給微信服務(wù)器,從而獲取access_tokenopenid

3、獲取用戶(hù)基本信息

<?php
$access_token = $access_token_arr['access_token'];
$openid = $access_token_arr['openid'];
$user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token=' . $access_token . '&openid=' . $openid . '&lang=zh_CN'; //獲取用戶(hù)信息的鏈接
$user_info = file_get_contents($user_info_url);
$user_info_arr = json_decode($user_info, true); //將返回的json字符串轉(zhuǎn)為數(shù)組
?>

在這段代碼中,我們通過(guò)access_tokenopenid去獲取用戶(hù)的基本信息,如用戶(hù)昵稱(chēng)、性別、城市等。需要注意的是,在獲取用戶(hù)基本信息前,我們需要確保用戶(hù)已經(jīng)授權(quán)scopesnsapi_userinfo的權(quán)限。

4、完整的登錄示例代碼

<?php
if (!isset($_GET['code']) || empty($_GET['code'])) {
    //第一步:用戶(hù)同意授權(quán),獲取code
    $appid = 'your_appid';
    $redirect_uri = urlencode('http://yourdomain.com/login.php');
    $scope = 'snsapi_userinfo';
    $url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' . $appid . '&redirect_uri=' . $redirect_uri . '&response_type=code&scope=' . $scope . '&state=STATE#wechat_redirect';
    header('Location:' . $url);
    exit;
} else {
    //第二步:通過(guò)code換取網(wǎng)頁(yè)授權(quán)access_token以及openid,再獲取用戶(hù)信息
    $appid = 'your_appid';
    $secret = 'your_appsecret';
    $code = $_GET['code'];
    $access_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $appid . '&secret=' . $secret . '&code=' . $code . '&grant_type=authorization_code';
    $access_token = file_get_contents($access_token_url);
    $access_token_arr = json_decode($access_token, true);
    $access_token = $access_token_arr['access_token'];
    $openid = $access_token_arr['openid'];
    $user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token=' . $access_token . '&openid=' . $openid . '&lang=zh_CN';
    $user_info = file_get_contents($user_info_url);
    $user_info_arr = json_decode($user_info, true);
 
    //TODO:在這里可以將用戶(hù)信息存入數(shù)據(jù)庫(kù),供之后使用
    //......
}
?>

三、小結(jié)

如上所述,通過(guò)簡(jiǎn)單的幾步,我們就可以使用PHP語(yǔ)言來(lái)實(shí)現(xiàn)微信登錄功能。本文只介紹了最基本的微信登錄實(shí)現(xiàn)方法,實(shí)際運(yùn)用中還有更多需要注意的問(wèn)題,如用戶(hù)權(quán)限的判斷、授權(quán)的有效期限等等。希望本文能對(duì)需要實(shí)現(xiàn)微信登錄的開(kāi)發(fā)者們提供一些幫助。


分享到:
標(biāo)簽:PHP微信登錄 微信登錄功能
用戶(hù)無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定