Web page authorization (OAuth2.0) PHP source code is simple implementation, oauth2.0 source code
Abstract:
1. We recommend that you learn the OAuth2.0 protocol.
2. Official documents and tools should be fully utilized.
It is relatively simple. You can directly post the source code. The "xxxxxxxxxx" part must be replaced based on the environment.
/*** OAuth2.0 authorized login implementation ** @ author login * @ file name: GetWxUserInfo. php * // callback address $ url = urlencode ("http://www.xxxxxxxxx.com/GetWxUserInfo.php"); // id and secret of the Public Account $ appid = 'xxxxxxxxxx'; $ appsecret = 'xxxxxxxxxxxx '; session_start (); // get the code, used to apply for a token with the server. Note: According to OAuth2.0 requirements, authorized logon requires user-side operations if (! Isset ($ _ GET ['code']) &! Isset ($ _ SESSION ['code']) {echo '<a href = "https://open.weixin.qq.com/connect/oauth2/authorize? Appid = wx6c11a252ff1d00c4 & redirect_uri = '. $ url. '& response_type = code & scope = snsapi_userinfo & state = 1 # wechat_redirect "> <font style =" font-size: 30 "> authorization </font> </a> '; exit;} // obtain the openid and access_token based on the code. Your backend server can directly apply to the server if (isset ($ _ GET ['code']) &! Isset ($ _ SESSION ['Token']) {$ _ SESSION ['code'] = $ _ GET ['code']; $ url = "https://api.weixin.qq.com/sns/oauth2/access_token? Appid = ". $ appid. "& secret = ". $ appsecret. "& code = ". $ _ GET ['code']. "& grant_type = authorization_code"; $ res = https_request ($ url); $ res = (json_decode ($ res, true )); $ _ SESSION ['Token'] = $ res;} print_r ($ _ SESSION); // apply for Userinfo Based on the requested access_token and openid. If (isset ($ _ SESSION ['Token'] ['Access _ token']) {$ url = "https://api.weixin.qq.com/sns/userinfo? Access_token = ". $ _ SESSION ['Token'] ['Access _ token']. "& openid = ". $ _ SESSION ['Token'] ['openid']. "& lang = zh_CN"; echo $ url; $ res = https_request ($ url); $ res = json_decode ($ res, true ); $ _ SESSION ['userinfo'] = $ res;} print_r ($ _ SESSION); // The cURL function encapsulates function https_request ($ url, $ data = null) {$ curl = curl_init (); curl_setopt ($ curl, CURLOPT_URL, $ url); curl_setopt ($ curl, CURLOPT_SSL_VERIFYPEER, FALSE); cur Rochelle setopt ($ curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (! Empty ($ data) {curl_setopt ($ curl, CURLOPT_POST, 1); curl_setopt ($ curl, CURLOPT_POSTFIELDS, $ data);} curl_setopt ($ curl, expires, 1 ); $ output = curl_exec ($ curl); curl_close ($ curl); return $ output ;}
The correct result is as follows:
Array ([code] => token [token] => Array ([access_token] => TWo6w5QMpzTZibu3FPh2k4EdC5bllp4sGeQkC4NbZtj-zti-ctZj1SrrNL1qGCf2lB1-6o3N7kh2bcxl5bxtQqJEGk1cq12l8CzF40R9XvA [expires_in] => 7200 [refresh_token] => token [openid] => ota_XwQ4r_5nioVmshQ [scope] => snsapi_userinfo) [userinfo] => Array ([openid] => ota_XwQ4r_5nioVmshQq [nickname] => yehu [sex] => 1 [language] => zh_CN [city] => Hangzhou [province] => Zhejiang [country] => China [headimgurl] => http://wx.qlogo.cn/mmopen/PiajxSqBRaELwee7rhrt2ibnkC1MEnu04WiaWrw9FkuPBbGOgnrMbynNoEuxicgXOetW5VqQbTrS4fZDXNvAWsz6GQ/0 [privilege] => Array ()))
The above is all the content of this article. I hope it will be helpful for your learning and support for helping customers.