微信授權登錄php
A. 微信怎麼給其他人授權登錄
方法如下:
1、點擊個人信息與許可權
在微信設置界面,找到個人信息與許可權選項並點擊一下。
2、點擊授權管理
進入後找到頁面的「授權管理」選項。
3、點擊授權操作
選擇合適的應用進行授權操作即可。
B. 微信網頁授權基本步驟
一、首先在微信公眾平台配置授權回調地址(「開發 - 介面許可權 - 網頁服務 - 網頁帳號 - 網頁授權獲取用戶基本信息」的配置選項中,修改授權回調域名);
二、關於網頁授權的兩種scope的區別說明
1、以snsapi_base為scope發起的網頁授權,是用來獲取進入頁面的用戶的openid的,並且是靜默授權並自動跳轉到回調頁的。用戶感知的就是直接進入了回調頁(往往是業務頁面)
2、以snsapi_userinfo為scope發起的網頁授權,是用來獲取用戶的基本信息的。但這種授權需要用戶手動同意,並且由於用戶同意過,所以無須關注,就可在授權後獲取該用戶的基本信息。
3、用戶管理類介面中的「獲取用戶基本信息介面」,是在用戶和公眾號產生消息交互或關注後事件推送後,才能根據用戶OpenID來獲取用戶基本信息。這個介面,包括其他微信介面,都是需要該用戶(即openid)關注了公眾號後,才能調用成功的。
三、關於網頁授權access_token和普通access_token的區別
1、微信網頁授權是通過OAuth2.0機制實現的,在用戶授權給公眾號後,公眾號可以獲取到一個網頁授權特有的介面調用憑證(網頁授權access_token),通過網頁授權access_token可以進行授權後介面調用,如獲取用戶基本信息;
2、其他微信介面,需要通過基礎支持中的「獲取access_token」介面來獲取到的普通access_token調用。
四、具體而言,網頁授權流程分為四步:
1、 引導用戶進入授權頁面同意授權,獲取code
1)、 scope為snsapi_base
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdap
ter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_bas
e&state=123#wechat_redirect
scope為snsapi_userinfo
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=
code&scope=snsapi_userinfo&state=STATE#wechat_redirect
code說明 : code作為換取access_token的票據,每次用戶授權帶上的code將不一樣,code只能使用一次,5分鍾未被使用自動過期 。
2、 通過code換取網頁授權access_token
首先請注意,這里通過code換取的是一個特殊的網頁授權access_token,與基礎支持中的access_token(該access_token用於調用其他介面)不同。公眾號可通過下述介面來獲取網頁授權access_token。如果網頁授權的作用域為snsapi_base,則本步驟中獲取到網頁授權access_token的同時,也獲取到了openid,snsapi_base式的網頁授權流程即到此為止。
尤其注意:由於公眾號的secret和獲取到的access_token安全級別都非常高,必須只保存在伺服器,不允許傳給客戶端。後續刷新access_token、通過access_token獲取用戶信息等步驟,也必須從伺服器發起。
請求方法
獲取code後,請求以下鏈接獲取access_token: https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
3、 刷新access_token(如果需要)
由於access_token擁有較短的有效期,當access_token超時後,可以使用refresh_token進行刷新,refresh_token有效期為30天,當refresh_token失效之後,需要用戶重新授權。
請求方法
獲取第二步的refresh_token後,請求以下鏈接獲取access_token:
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN
4、 拉取用戶信息(需scope為 snsapi_userinfo)
如果網頁授權作用域為snsapi_userinfo,則此時開發者可以通過access_token和openid拉取用戶信息了。
請求方法
http:GET(請使用https協議) https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
C. 微信如何授權登錄
1. 該應用支持微信登錄:找到手機設置,點開應用許可權,找到該應用,點許可權,找到微信登錄許可權,打開,退出重回應用嘗試微信登錄
2. 該應用不支持微信登錄:暫時無法用微信登錄,可以去該應用問題反饋處反饋,希望添加微信登錄功能,或者去到應用商店評價該應用
其他
1. 可以登錄游戲,網站等等。
2. 打開手機微信軟體,點擊「發現」界面之後,會看到一個「游戲中心」的選項,點擊游戲中心,進入游戲中心後再點擊右上角的「…」
3. 進入游戲管理後點擊想要授權的游戲,如示範的是經典飛機大戰。
4. 在游戲設置欄里點擊游戲關系,最後再點確定授權該游戲,這樣就成功在微信上對該游戲授權了。
擴展
微信是騰訊公司於2011年1月21日推出的一款通過網路快速發送語音簡訊、視頻、圖片和文字,支持多人群聊的手機聊天軟體。用戶可以通過微信與好友進行形式上更加豐富的類似於簡訊、彩信等方式的聯系。微信軟體本身完全免費,使用任何功能都不會收取費用,微信時產生的上網流量費由網路運營商收取。
功能特點
1、支持發送語音簡訊、視頻、圖片(包括靜/動態表情)和文字
2、支持多人群聊;
3、支持查看所在位置附近使用微信的人;
5、搖一搖功能結識世界各地的朋友;
4、支持騰訊微博、QQ郵箱、漂流瓶、語音記事本、QQ離線消息等功能;
5、支持視頻聊天;
6、支持電腦網頁登錄;
7、把照片分享到朋友圈,可與好友進行互動;
8、熱點新聞資訊;
9、隨時隨地收/寫QQ郵件;
10、視頻聊天。
D. 微信小程序用戶授權登錄
1、appid: 微信小程序/公眾號的唯一憑證,即 AppID。
獲取途徑:可在「微信公眾平台 - 設置 - 開發設置」頁中獲得。(需要已經成為開發者,且帳號沒有異常狀態)
用途:小程序的 AppID 相當於小程序平台的一個身份證,會在很多場景中使用,比如小程序的登錄、授權等
2、openID: openID 是微信生態下 應用的唯一標識 , ,即同一個用戶在不同的小程序下的openid是不同的。
獲取途徑:調用 auth.code2Session 介面,通過code(登錄憑證,調用wx.login獲取)+appid+appsecret(小程序密鑰,獲取方式和appid一樣)可以換取openid,即 靜默授權。
用途:用於在開發者系統中標識用戶信息
3、UnionID:UnionID 是微信生態下 用戶的唯一標識 ,換句話說,同一用戶,對同一個微信開放平台下的不同應用,UnionID是相同的。
獲取途徑:綁定了開發者帳號的小程序,可以通過以下途徑獲取 UnionID。
1)開發者可以直接通過 wx.login + code2Session 獲取到該用戶 UnionID,無須用戶授權。
2)小程序端調用雲函數時,可在雲函數中通過 Cloud.getWXContext 獲取 UnionID。
用途:標識同一個微信開放平台下的用戶,可用於去重判斷
也就是我們常用的微信移動端/PC端之間的掃碼登錄,PC端用微信掃碼登錄,微信移動端確認授權登錄後,應用可以從微信拿到用戶的open id或union id,將微信獲取的用戶信息與自己賬戶體系中的用戶身份進行關聯;
需要用戶確認登錄,這樣可以通過用戶的個人確認,獲取用戶全面的信息,無論是否關注相關微信公眾號等都可以獲取。
1、靜默授權不需要用戶確認,只需要用戶訪問某個網頁,屬於嵌套在普通網頁里的授權形式,但是只能獲取到用戶的唯一標示openid和union id,無法拿到用戶的微信頭像、微信名稱等個人信息,對於用戶的簡單認證還是很有用的。
2、靜默授權的過程:
1)調用 wx.login() 獲取 臨時登錄憑證code
2)調用 auth.code2Session 介面,換取用戶唯一標識 openID
3)調用本地後台服務,將 openID 映射到本地的 userId
微信開發文檔-小程序登錄流程
參考文章:
1、 【微信小程序用戶授權登錄】
2、 微信第三方登錄(靜默授權和非靜默授權)
3、 openid會變嗎?微信小程序開發中的appid、openid、unionid使用總結
E. 微擎微信公眾號授權登錄反復登錄跳轉修復
因為公眾號修改了獲取用戶基本信息的返回欄位內容,導致微擎獲取用戶基本信息時無法獲取到nickname,而需要反復跳轉。並且特別是電腦端打開都會彈出授權彈窗
通過修改 framework/model/mc.mod.php
mc_oauth_account_userinfo 函數,以下片段
if (intval($_W['account']['oauth']['level']) < 4 && !in_array($_W['account']['oauth']['level'], array(ACCOUNT_TYPE_APP_NORMAL, ACCOUNT_TYPE_APP_AUTH, ACCOUNT_TYPE_WXAPP_WORK))) { return error(-3, '公眾號非認證服務號, 無法獲取用戶信息.');}
這個判斷以下內容改為下方
if (!empty($_SESSION['openid']) && intval($_W['account']['level']) >= 3) {
$oauth_account = WeAccount::createByUniacid();
$userinfo = $oauth_account->fansQueryInfo($_SESSION['openid']);
//查詢用戶信息,用於判斷是否已保存在粉絲記錄
$fan = mc_fansinfo($_SESSION['openid']);
//獲取到的用戶基礎信息未出錯,且不為空
if(empty($fan) && !is_error($userinfo) && !empty($userinfo) && !empty($userinfo['openid']) ){
$record = array();
$record['updatetime'] = TIMESTAMP;
$record['nickname'] = '';
$record['tag'] = base64_encode(iserializer($userinfo));
$record['openid'] = $_SESSION['openid']; $record['acid'] = $_W['acid'];
$record['uniacid'] = $_W['uniacid'];
$record['unionid'] = $userinfo['unionid'];
$record['user_from'] = $_W['account']->typeSign == 'wxapp' ? 1 : 0;
pdo_insert('mc_mapping_fans', $record);
}
//獲取的用戶信息不為空,且已經存在昵稱。
else if (!is_error($userinfo) && !empty($fan) && !empty($fan['nickname']) && is_array($userinfo) ){
//返回粉絲,已有的粉絲信息 ==》這么改之後,系統里的粉絲用戶信息就沒辦法實時最新了。騰訊修改返回信息規則之後只有使用,彈窗授權才能獲取到用戶的昵稱、頭像
$userinfo['nickname'] = stripcslashes($fan['nickname']);
$userinfo['avatar'] = $fan['headimgurl'];
$_SESSION['userinfo'] = base64_encode(iserializer($userinfo));
$record = array(
'updatetime' => TIMESTAMP,
'follow' => $userinfo['subscribe'],
'followtime' => $userinfo['subscribe_time'],
'unionid' => $userinfo['unionid'],
'tag' => base64_encode(iserializer($userinfo))
);
//更新粉絲的訂閱 狀態信息
pdo_update('mc_mapping_fans', $record, array('openid' => $_SESSION['openid'], 'uniacid' => $_W['uniacid']));
if (!empty($fan['uid']) || !empty($_SESSION['uid'])) {
$uid = intval($fan['uid']);
if (empty($uid)) {
$uid = intval($_SESSION['uid']);
}
$member = mc_fetch($uid, array('nickname', 'gender', 'residecity', 'resideprovince', 'nationality', 'avatar'));
$record = array();
if (empty($member['nickname']) && !empty($userinfo['nickname'])) {
$record['nickname'] = stripslashes($userinfo['nickname']);
}
if (empty($member['avatar']) && !empty($userinfo['headimgurl'])) {
$record['avatar'] = $userinfo['headimgurl'];
}
if (!empty($record)) {
pdo_update('mc_members', $record, array('uid' => $uid));
cache_build_memberinfo($uid);
}
}return $userinfo;
}
}
替換到這個地方
$state = 'we7sid-' . $_W['session_id'];
$_SESSION['dest_url'] = urlencode($_W['siteurl']);
以上作為記錄,備忘。
F. php如何通過cookie獲取微信授權登錄前頁面URl
PHP 的 $_COOKIE 變數用於取回 cookie 的值。
例子:
在下面的實例中,我們取回了名為 "user" 的 cookie 的值,並把它顯示在了頁面上:
<?php
echo$_COOKIE["user"];
print_r($_COOKIE);
?>
同時可以用setcookie() 函數設置 cookie。
語法:
setcookie(name, value, expire, path, domain);
在下面的例子中,我們將創建名為 "user" 的 cookie,並為它賦值 "Alex Porter"。我們也規定了此 cookie 在一小時後過期:
<?php
setcookie("user","AlexPorter",time()+3600);
?>
當刪除 cookie 時,您應當使過期日期變更為過去的時間點。
刪除的實例:
<?php
//
setcookie("user","",time()-3600);
?>
具體而言,登錄授權流程分為四步:
1、引導用戶進入授權頁面同意授權,獲取code
2、通過code換取網頁授權access_token(與基礎支持中的access_token不同)
3、如果需要,開發者可以刷新網頁授權access_token,避免過期
4、通過網頁授權access_token和openid獲取用戶基本信息(支持UnionID機制)
G. php結合app微信登錄 php需要做什麼操作
1、app單獨做微信授權登錄獲取到unionid
2、app根據unionid請求伺服器(php),伺服器判斷是否有該會員,如果沒有就做注冊,如有已經有了直接就返回會員信息
3、就是app請求的時候盡量吧app的平台信息(比如安卓或者ios)一起發給伺服器。伺服器好做登錄記錄
H. 請問一下PHP如何實現微信掃碼登錄PC網站
php 微信掃碼 pc端自動登陸注冊 用的介面scope 是snsapi_userinfo,微信登陸一個是網頁授權登陸,另一個是微信聯合登陸
I. 怎麼打開微信登錄授權 如何打開微信登錄授權
1、如果想要打開微信授權登錄界面的話,就必須要先打開電腦上的微信一欄。
2、然後就需要再點擊登錄微信。
3、然後接著就會發現,手機上會跳出來一個界面。
4、然後就能看到該頁面,就是微信授權登錄界面了。
J. PHP如何實現微信網頁授權
具體而言,網頁授權流程分為四步:
1、引導用戶進入授權頁面同意授權,獲取code
2、通過code換取網頁授權access_token(與基礎支持中的access_token不同)
3、如果需要,開發者可以刷新網頁授權access_token,避免過期
4、通過網頁授權access_token和openid獲取用戶基本信息(支持unionid機制)