zoukankan      html  css  js  c++  java
  • 一个基于thinkphp的微信授权登陆功能

    共享一份基于thinkphp开发的用户授权登陆的功能代码,本实例使用thinkphp的第三方微信公众平台PHP-SDK,地址https://github.com/dodgepudding/wechat-php-sdk 自行下载引入即可

    新建控制器 PublicController

    <?php
    namespace App\Controller;
    use Think\Controller;
    class PublicController extends Controller{
    public function _initialize(){

    if(!$_SESSION['openid']){
    Vendor("Wechat.wechat#class");
    $config = M ( "Wxconfig" )->where ( array (   
    "id" => "1"
    ) )->find ();//获取微信的配置信息 appid,appsecret

    $options = array (
    'appid' => $config ["appid"], // 填写高级调用功能的app id
    'appsecret' => $config ["appsecret"], // 填写高级调用功能的密钥
    );
    $weObj = new \Wechat ( $options );

    $url=$_SERVER["REQUEST_SCHEME"].'://'.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
    if(empty($_GET['code'])){
    $url_get=$weObj->getOauthRedirect($url);
    redirect($url_get);
    }else{
    $access_token=$weObj->getOauthAccessToken();
    $userinfo=$weObjgetOauthUserinfo($access_token['access_token'],$access_token['openid']);
    $data['openid']=$access_token['openid'];
    $data['username']=$userinfo['nickname'];
    $data['pic']=$userinfo['headimgurl'];
    $result = R("Api/MemberApi/addOauth", array($data));
    $_SESSION['openid']=$access_token['openid'];
    if($result){
    redirect($url.'&openid='.$access_token['openid']);
    }
    }
    }

    }

    }

    接下来只需继承该类就可以了

  • 相关阅读:
    Block编程
    自己写Web服务器(续)
    C# 2.0对现有语法的改进
    使用CDN
    优化网站设计(一):减少请求数
    MongoDB Shell的使用
    memcache 和appfabric
    go语言中几个有趣的特性以及对go的看法
    bpm流程平台
    Socket编程 (异步通讯) (Tcp,Udp)Part2
  • 原文地址:https://www.cnblogs.com/weishanyun/p/6078166.html
Copyright © 2011-2022 走看看