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']);
    }
    }
    }

    }

    }

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

  • 相关阅读:
    记一次笔试题
    模块模式浅析
    在windows上面实现ubuntu的三种方法
    移动端事件(五)—— 函数防抖和函数节流的封装
    一文分清强弱、动态静态类型语言
    为什么前端要学TypeScript
    OpenSSL SSL_read: Connection was reset, errno 10054
    浅悉http1.0 、http1.1和http2.0的区别
    上班一个月的总结
    从浅入深——理解JSONP的实现原理
  • 原文地址:https://www.cnblogs.com/weishanyun/p/6078166.html
Copyright © 2011-2022 走看看