It is very good to implement web page authorization login for websites without public accounts <?php <br />
// +-------------------------------------------------- -----------------------<br>
// | OneThink [ WE CAN DO IT JUST THINK IT ]<br>
// +-------------------------------------------------- -----------------------<br>
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.<br>
// +-------------------------------------------------- -----------------------<br>
// | Author: Art Network <br>
// +-------------------------------------------------- -----------------------<br>
namespace HomeController;<br>
use ThinkController;<br>
/**<br>
* Public account management<br>
*/ <br>
class WebauthController extends Controller { <br>
/*id Public account ID<br>
*url jump address<br>
*scope authorization method false silent authorization<br>
*/<br>
Public function index(){<br>
// $map ['id'] = '114';//I ( 'id', 0, 'intval' );<br>
// $info = M ( 'member_public' )->where ( $map )->find (); <br>
$info=array(<br>
‘appid’ => , <br>
'appsecret' => ,
);<br>
<br>
$redirect_url=U('Webauth/index');//Callback address<br>
$code=I('get.code');<br>
$scope=I('get.scope');<br>
if(empty($scope)){<br>
$scope=false;<br>
}else{<br>
$scope=true;<br>
}<br>
If(empty($code)){ <br>
$url='http://ky.xebox.cn/index.php/Index/Index/index/';//Sending address<br>
Yoauth($info['appid'],$redirect_url,$scope,$url);<br>
}<br>
$data=Yoauth_access_token($info['appid'],$info['secret'],$code); <br>
$canshu=http_build_query($data); <br>
echo $URL=I('get.state').'?'.$canshu;<br>
redirect($URL);<br>
} <br>
} <br>
/***********************************WeChat webpage authorization*************** **************************/<br>
<br>
/* Step one: User agrees to authorize and obtain code <br>
$appid;//Public account appid<br>
$redirect_url;//The callback link address redirected after authorization, please use urlencode to process the link<br>
$response_type; //Return type, please fill in the code<br>
$scope;//Application authorization scope, snsapi_base does not pop up the authorization page, jumps directly, and can only get the user openid), snsapi_userinfo (pops up the authorization page, you can get the nickname, gender, and location through openid. And, even if you are not following In the case of , as long as the user authorizes it, his information can also be obtained)<br>
$state;//The state parameter will be included after redirection. You can fill in the official account ID to determine which official account the user comes from<br>
*/ <br>
function Yoauth($appid,$redirect_url,$scope=true,$state='ypwl',$response_type="code"){ <br>
If($scope){<br>
$scope='snsapi_userinfo';//Pop-up web page authorization<br>
}else{<br>
$scope='snsapi_base';//Silent authorization<br>
}<br>$map ['appid'] = $appid;<br>
$map ['redirect_uri'] = $redirect_url;<br>
$map ['response_type'] = $response_type;<br>
$map ['scope'] = $scope;<br>
$map ['state'] = $state;<br>
$url = 'https://open.weixin.qq.com/connect/oauth2/authorize?' . http_build_query ( $map ) . '#wechat_redirect';<br>
Redirect($url); <br>
}<br>
/* Step 2: Exchange the code for webpage authorization access_token and obtain user information to omit the following steps<br>
Note: If this step is done in silent mode, it will be completed and the user's openid will be returned directly. The snsapi_base-style web page authorization process ends here. <br>
The appid is the unique identifier of the official account<br>
The secret is the appsecret of the official account<br>
code is to fill in the code parameters obtained in the first step<br>
Grant_type is filled in as authorization_code <br>
*/<br>
function Yoauth_access_token($appid,$secret,$code,$grant_type='authorization_code'){ <br>
$map ['appid'] = $appid;<br>
$map ['secret'] = $secret;<br>
$map ['code'] = $code;<br>
$map ['grant_type'] = $grant_type; <br>
$url = 'https://api.weixin.qq.com/sns/oauth2/access_token?'. http_build_query ( $map ) ;<br>
$content = file_get_contents ( $url );<br>
$content = json_decode ($content, true);<br>
If (! empty ( $content ['errmsg'] )) {<br>
exit ( $content ['errcode'].'--'.$content['errmsg'] );<br>
}<br>
//Determine the authorization method<br>
If($content['scope'] == 'snsapi_userinfo'){<br>
$content=Yoauth_userinfo($content['access_token'],$content['openid']);//Get WeChat user information<br>
}<br>
Return $content;<br>
}<br>
/*<br>
Step 3: Refresh access_token (if needed) <br>
*/<br>
/* Step 4: Pull user information (need to have scope snsapi_userinfo)<br>
Access_token Web page authorization interface call certificate, note: this access_token is different from the basic supported access_token<br>
Openid The user’s unique identifier<br>
langReturn to the country and region language version, zh_CN Simplified Chinese, zh_TW Traditional Chinese, en English<br>
*/<br>
function Yoauth_userinfo($access_token,$openid,$lang='zh_CN'){ <br>
$map ['access_token'] = $access_token;<br>
$map ['openid'] = $openid;<br>
$map ['lang'] = $lang; <br>
$url = 'https://api.weixin.qq.com/sns/userinfo?'. http_build_query ( $map );<br>
$content = file_get_contents ( $url );<br>
$content = json_decode ($content, true);<br>
If (! empty ( $content ['errmsg'] )) {<br>
exit ( $content ['errcode'].'--'.$content['errmsg'] );<br>
}<br>
Return $content;<br>
} <br>
/* User openid gets user information<br>
access_token is the calling interface credential<br>
Openid is the identification of an ordinary user, unique to the current official account<br> lang No Return to the country and region language version, zh_CN Simplified Chinese, zh_TW Traditional Chinese, en English <br>
*/<br>
function Yget_wx_userinfo($openid,$access_token,$lang='zh_CN'){<br>
$map ['access_token'] = $access_token;<br>
$map ['openid'] = $openid;<br>
$map ['lang'] = $lang; <br>
$url = 'https://api.weixin.qq.com/cgi-bin/user/info?'. http_build_query ( $map );<br>
$content = file_get_contents ( $url );<br>
$content = json_decode ($content, true);<br>
If (! empty ( $content ['errmsg'] )) {<br>
exit ( $content ['errcode'].'--'.$content['errmsg'] );<br>
}<br>
Return $content;<br>
}

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

WebStorm Mac version
Useful JavaScript development tools