パブリックアカウントのないウェブサイトにウェブページ認証ログインを実装することは非常に良いことです <?php <br />
// +---------------------------------------------- --- ----------------------------------<br>
// | OneThink [ 考えればできる ]<br>
// +---------------------------------------------- --- ----------------------------------<br>
// | 著作権 (c) 2013 http://www.onethink.cn 無断複写・転載を禁じます<br>
// +---------------------------------------------- --- ----------------------------------<br>
// | 著者: アートネットワーク <br>
// +---------------------------------------------- --- ----------------------------------<br>
名前空間 HomeController;<br>
ThinkController を使用します;<br>
/**<br>
* パブリックアカウント管理<br>
*/ <br>
class WebauthController extends Controller { <br>
/*id 公開アカウント ID<br>
*URLジャンプアドレス<br>
*スコープ認証方式 false サイレント認証<br>
*/<br>
パブリック関数index(){<br>
// $map ['id'] = '114';//I ( 'id', 0, 'intval' );<br>
// $info = M ( 'member_public' )->where ( $map )->find ();
$info=array(<br>
「appid」=> , <br>
'appsecret' =>
);<br>
<br>
$redirect_url=U('Webauth/index');//コールバックアドレス<br>
$code=I('get.code');<br>
$scope=I('get.scope');<br>
if(empty($scope)){<br>
$scope=false;<br>
}その他{<br>
$scope=true;<br>
}<br>
If(空($code)){ <br>
$url='http://ky.xebox.cn/index.php/Index/Index/index/';//送信アドレス<br>
Yoauth($info['appid'],$redirect_url,$scope,$url);<br>
}<br>
$data=Yoauth_access_token($info['appid'],$info['secret'],$code);
$canshu=http_build_query($data); <br>
echo $URL=I('get.state').'?'.$canshu;<br>
リダイレクト($URL);<br>
}<br>
}<br>
/***********************************WeChat Web ページの認証************** * **************************/<br>
<br>
/* ステップ 1: ユーザーはコードを承認して取得することに同意します <br>
$appid;//パブリックアカウントappid<br>
$redirect_url;//承認後にリダイレクトされるコールバック リンク アドレス。リンクを処理するには urlencode を使用してください<br>
$response_type; // 戻り値の型、コードを入力してください<br>
$scope;//アプリケーションの認可スコープ、snsapi_base は認可ページをポップアップせず、直接ジャンプし、ユーザーの openid のみを取得できます)、snsapi_userinfo (認可ページをポップアップし、openid を通じてニックネーム、性別、場所を取得できます)また、フォローしていない場合でも、ユーザーが許可している限り、その情報も取得できます)<br>
$state;// リダイレクト後に state パラメーターが含まれます。公式アカウント ID を入力して、ユーザーがどの公式アカウントから来たのかを判断できます。
*/<br>
function Yoauth($appid,$redirect_url,$scope=true,$state='ypwl',$response_type="code"){ <br>
If($scope){<br>
$scope='snsapi_userinfo';// ポップアップ Web ページの認証<br>
}その他{<br>
$scope='snsapi_base';//サイレント認証<br>
}<br>$map ['appid'] = $appid;<br>
$map ['redirect_uri'] = $redirect_url;<br>
$map ['response_type'] = $response_type;<br>
$map ['スコープ'] = $scope;<br>
$map ['state'] = $state;<br>
$url = 'https://open.weixin.qq.com/connect/oauth2/authorize?' http_build_query ( $map ) ;<br>
リダイレクト($url);
}<br>
/* ステップ 2: Web ページの認証 access_token のコードを交換し、ユーザー情報を取得することで、次のステップを省略します<br>
注: このステップをサイレント モードで実行すると、このステップは完了し、ユーザーの openid が直接返され、snsapi_base スタイルの Web ページ認証プロセスはここで終了します。 <br>
appid は公式アカウントの一意の識別子です<br>
秘密は公式アカウントのappsecretです<br>
コードは、最初のステップで取得したコードパラメータを入力することです<br>
Grant_type は 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>
//認可方法を決定する<br>
If($content['scope'] == 'snsapi_userinfo'){<br>
$content=Yoauth_userinfo($content['access_token'],$content['openid']);//WeChat ユーザー情報を取得します<br>
}<br>
$content を返します;<br>
}<br>
/*<br>
ステップ 3: access_token を更新する (必要な場合) <br>
*/<br>
/* ステップ 4: ユーザー情報を取得します (スコープ snsapi_userinfo が必要です)<br>
Access_token Web ページ認証インターフェイス呼び出し証明書、注意: この access_token は、基本的にサポートされている access_token とは異なります<br>
Openid ユーザーの一意の識別子<br>
lang 国と地域の言語バージョンに戻る、zh_CN 簡体字中国語、zh_TW 繁体字中国語、en 英語<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>
$content を返します;<br>
}<br>
/* ユーザー openid がユーザー情報を取得します<br>
access_token は呼び出し側インターフェースの認証情報です<br>
Openid は、現在の公開アカウントに固有の一般ユーザーの ID です<br>lang No 国と地域の言語バージョンに戻る、zh_CN 簡体字中国語、zh_TW 繁体字中国語、en 英語 <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>
$content を返します;<br>
}

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

WebStorm Mac版
便利なJavaScript開発ツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版
ビジュアル Web 開発ツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。
