专栏首页小白程序猿微信小程序开发-注册账号

微信小程序开发-注册账号

微博登录原理,简单介绍一下,通过特定网址携带固定参数,发起请求登录,之后通过回调地址,获取code值,通过code值获取access_token值和uid值,通过上面获取的值获取用户信息。

以下基础信息简要介绍一下

一、申请账号

地址:https://weibo.com/signup/signup.php,

二、完善信息

完善信息,实名认证等操作

三、申请应用

使用注册账号进入微博开放平台(https://open.weibo.com/),登录账户。

选择“微博登录”,并填写相关信息,完善应用。

四、应用审核

获取相关信息,App key 和 App Sercet,以及填写回调地址。

五、前端代码

填写“App key” 和“回调地址”,将链接上的**顺序替换

<a class="btn btn-info" href="https://api.weibo.com/oauth2/authorize?client_id=*****&response_type=code&redirect_uri=******">微博登录</a>

六、php代码

/**
 * 微博回调
 */
public function wbback()
{
    //参数设置
    $Client_id     = "***";    //appkey
    $Client_secret = "***";    //App Sercet
    $Redirect_uri  = "***"; //回调地址
    //接收code值
    $Code = input('get.code');
    if (!$Code) $this->error("code获取失败!");
    //获取access_token
    $url  = "https://api.weibo.com/oauth2/access_token?client_id=$Client_id&client_secret=$Client_secret&grant_type=authorization_code&redirect_uri=$Redirect_uri&code=$Code";
    $info = $this->httpsRequest($url);
    //json转数组
    $info_json = json_decode($info, true);
    //获取access_token和uid,用于获取用户信息
    $access_token = $info_json['access_token'];
    $uid          = $info_json['uid'];

    if ($info) {
        //设置中文字符集
        header("Content-type:text/html;charset=utf-8");
        //获取用户信息
        $info_url = "https://api.weibo.com/2/users/show.json?access_token=$access_token&uid=$uid";
        $ch       = curl_init();
        //设置选项,包括URL
        curl_setopt($ch, CURLOPT_URL, $info_url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        //执行并获取HTML文档内容
        $output = curl_exec($ch);
        curl_close($ch);
        //此处可打印用户所有信息
        //dump($output);
        $userinfo = json_decode($output, true);
        $username = $userinfo['screen_name'];
        echo "登录成功,用户名:$username";
    }
}

/**
 * httpsRequest
 * @param $url
 * @param $post_data
 * @return mixed
 */
public function httpsRequest($url, $post_data)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    // 设置请求为post类型
    curl_setopt($ch, CURLOPT_POST, 1);
    // 添加post数据到请求中
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

    // 执行post请求,获得回复
    $res = curl_exec($ch);
    curl_close($ch);
    return $res;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 内网穿透神器:Ngrok在支付中的正确使用姿势

    随着互联网的发展,无论是web服务还是移动APP越来越多的都集成了第三方支付(支付宝、微信、银联)。通常作为服务提供方,支付成功以后都会有一个后端回调URL来通...

    小柒2012
  • SpringBoot开发案例之配置Druid数据库连接池

    好久没有更新Spring Boot系列文章,你说忙么?也可能是,前段时间的关注点也许在其他方面了,最近项目中需要开发小程序,正好采用Spring Boot实现一...

    小柒2012
  • SpringBoot开发案例之配置静态资源文件路径

    SpringBoot本质上是为微服务而生的,以JAR的形式启动运行,但是有时候静态资源的访问是必不可少的,比如:image、js、css 等资源的访问。

    小柒2012
  • SpringBoot2.x开发案例之整合Quartz任务管理系统

    基于spring-boot 2.x + quartz 的CRUD任务管理系统,适用于中小项目。

    小柒2012
  • 聊聊Servlet、Struts1、Struts2以及SpringMvc中的线程安全

    很多初学者,甚至是工作1-3年的小伙伴们都可能弄不明白?servlet Struts1 Struts2 springmvc 哪些是单例,哪些是多例,哪些是线程安...

    小柒2012
  • JAVA版微信小程序用户数据的签名验证和加解密

    为了确保 开放接口 返回用户数据的安全性,微信会对明文数据进行签名。开发者可以根据业务需要对数据包进行签名校验,确保数据的完整性。

    小柒2012
  • 世界上最好的语言搭建短链接及统计功能

    在这个营销的时代,短链接和二维码是企业进行营销中非常重要的工具,不仅仅是缩短了链接,而且还可以通过扩展获得更多的数据,诸如点击数、下载量、来源以及时间等等。

    小柒2012

扫码关注云+社区

领取腾讯云代金券