qq登录,新浪微博登录 ,接口开发
给linux命令在线中文手册加了,qq登录和新浪微博登录,认证用的是auth2.0,并且用了js api和php api相结合的方式来做的。个人觉得这种方式,兼顾安全和人性化。以前写过一篇关于申请的博客,请参考:qq登录,新浪微博登录接口申请过程中遇到的问题
1,js api的优点,就是弹窗登录,不要跳来跳去,烦的很,数据都是后获取的,可以通过浏览器的开发者工具,看到返回的数据,这样保存api返回的数据就不安全了,在浏览器上可以直接写代码,模拟提交
2,php api的缺点,页面跳转,个人感觉跳来跳去,非常让人不爽。但是在保存数据时,要安全的多,并且随时可以到第三方进行数据审核。
如果二者结合起来,不用跳来跳去,数据也可以得到校验。
一,qq登录
qq登录,JS API登录,并获取个人数据,异步提交给php程序,php程序,对提交来的数据,进行第三方校验,也就是说,根据传来的参数,在请求一次php的api,来获取信息,入本地数据库。qq的open id是qq的唯一标识,主要代码如下。
1,js代码
- <script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-appid="你的appid" charset="utf-8"></script>
- function qq_login(){
- QC.Login({
- btnId:"qqlogin",
- scope:"all",
- size: "A_M"
- }, function(reqData, opts){
- if(QC.Login.check()){
- QC.Login.getMe(function(openId, accessToken){
- if(openId){
- $.ajax({
- type:"POST",
- url:"./?mod=ajax&app=ajax_login&act=qq",
- async:false,
- data:{'openid':openId,'access':accessToken,'login':'only'},
- success: function(msg){
- if(msg == 'yes'){
- 这里是你的操作
- }
- }
- });
- }
- });
- }
- });
- }
2,php代码
- require_once("路径/qqConnectAPI.php"); //顶部包含这个文件
- public function qqAction(){
- if(emptyempty($_POST['openid']) || emptyempty($_POST['access'])){
- echo "no";
- exit;
- }
- $this->open_id = $_POST['openid'];
- $this->access = $_POST['access'];
- $qc = new QC($this->access,$this->open_id); //对数据进行校验
- $arr = $qc->get_user_info();
- $result = $this->save_qq($arr); //保存数据
- if(!emptyempty($result){
- echo "yes";
- exit;
- }else{
- echo "no";
- exit;
- }
二,新浪微博登录
js api登录过程,获取到登录数据,并且存储到cookie中,异步提交时,不用传参数到,php程序。php api有方法读取登录的access token,并获取唯一标识,user id
在这里再吐槽一下,新浪的接口,还是不错的,可就是尼玛,文档乱的一踏糊涂,找个东西,那叫痛苦。
1,js 代码
- <script src="http://tjs.sjs.sinajs.cn/open/api/js/wb.js?appkey=应用的app id" type="text/javascript" charset="utf-8"></script>
新浪微博的app key,app secret有多个,一个是网站的app
key,app secret,网站下,每个创建应用都有一个app key,app secret。
- function weibo_login (){
- WB2.anyWhere(function(W){
- W.widget.connectButton({
- id: "weibologin",
- type:'3,2',
- callback : {
- login:function(o){ //登录后的回调函数
- $.ajax({
- type:"POST",
- url:"./?mod=ajax&app=ajax_login&act=weibo",
- async:false,
- data:{'login':'only'},
- success: function(msg){
- if(msg == 'yes'){
- 你的操作
- }
- }
- });
- }
- }
- });
- });
- }
2,php代码
- include_once('路径/config.php');
- include_once('路径/saetv2.ex.class.php');
- public function weiboAction(){
- $o = new SaeTOAuthV2( WB_AKEY , WB_SKEY );
- $access = $o->getTokenFromJSSDK(); //从cookie中获取数据
- $c = new SaeTClientV2( WB_AKEY , WB_SKEY , $access['access_token'] );
- $user_message = $c->show_user_by_id( $access['uid']);
- $result = $this->save_sina($user_message); //保存数据
- if(!emptyempty($result){
- echo "yes";
- exit;
- }else{
- echo "no";
- exit;
- }
- }
三,小结
qq登录和微博登录的接口都还是不错的,qq登录在实用性,灵活性,安全性上,比微博就好一点。特别是文档方面,qq登录比微博登录好的太多。新浪微博团队能不能改进一下呢。这就好比,有了家电,没有说明书是一样的。
qq登录,新浪微博登录 ,接口开发的更多相关文章
- 第三方登录 QQ登录 人人网登录 新浪微博登录
http://www.pp6.cn/Index.aspx http://www.pp6.cn/Login.aspx 网站有自己的账号系统,这里使用的第三方登录仅仅是获取第三方账号的唯一id,昵称,性别 ...
- 7-4 python 接口开发(提供mock服务)
1.登录接口开发(数据存在数据库中) 接口开发做mock(模拟功能) tools.py import pymysql def my_db(sql): conn = pymysql.connect(h ...
- qq登录,新浪微博登录接口申请过程中遇到的问题
接口申请下来了,开发很容易的,参数传到就可以了.以前就做过这方面的开发,但是申请还是第一次,网上有关这方面的东东不是很多,所以记录一下申请过程. 1,qq登录接口申请 申请地址是:http://con ...
- 新浪微博登录接口(PHP版)
CI框架下 新浪微博登录接口完整版说明:本贴只适合CI框架.功能实现:登录接口跳转链接成功,获取用户信息(包括最重要的u_id)成功,将用户与本地平台连接起来,用户登录成功后信息的存储,本地数据库第三 ...
- CI框架下 新浪微博登录接口完整版
https://www.cnblogs.com/yznyzcw/p/3756622.html#top 说明:本贴只适合CI框架.功能实现:登录接口跳转链接成功,获取用户信息(包括最重要的u_id)成功 ...
- 如何本地测试例如QQ登录等第三方接口
前言:现在基本是个网站就会集成第三方的一些接口,比如QQ登录.分享等等.但是在开发的时候,尤其是没有这方面经验的开发人员来说,调试流程时会显得迷茫,不知道怎么调试.这里就个人的这方面学习摸索做一个总结 ...
- 微信、QQ、新浪微博等第三方登录,你想知道的都在这了(上) 微信、QQ、新浪微博等第三方登录,你想知道的都在这了(下)
微信.QQ.新浪微博等第三方登录,你想知道的都在这了(上):https://www.jianshu.com/p/133d84042483 微信.QQ.新浪微博等第三方登录,你想知道的都在这了(下):h ...
- 关于使用QQ、新浪微博、腾讯微博等第三方登录网站的开发过程(二)
(二).新浪微博登录 1. 首先在新浪微博开放平台注册成为开发者.[http://open.weibo.com/connect] 具体自己填写一些相关信息就OK! 2. 注册成功之后,点击[微连接], ...
- php新浪微博登录接口用法实例
本文实例讲述了php新浪微博登录接口用法.分享给大家供大家参考.具体分析如下: 在做微博登陆之前是需要申请到APP KEY 和App Secret,这个的申请方式请去 open.weibo.com 申 ...
随机推荐
- codeforces C. Team 解题报告
题目链接:http://codeforces.com/problemset/problem/401/C 题目意思:给出0和1的数目(分别为n和m个),问是否能构造一条同时满足连续两个0不能再一起和连续 ...
- yii中调取字段名称时label与labelEx的区别
$form = $this->beginWidget('CActiveForm',array('id' => 'userRegisterForm')); echo $form->la ...
- LaTeX常用的符号
推荐新手使用的网站:http://latex.codecogs.com/eqneditor/editor.php \(\sum _{d|n}{u(d)F(\frac{n}{d})}\) \sum _{ ...
- uglifyjs2全局混淆
从git克隆uglifyjs2源码后,进入目录: npm link 编译并安装uglifyjs2成功,就可以直接调用uglifyjs命令了.但是在进行全局混淆时出现了问题,虽然指定了文件topvar. ...
- SDOI2017 Round1 Day1 题解
不知道有几个AK的,除了出题人SB搬了个BZOJ3779以外,应该没什么因素阻碍AK吧.要是SCOI考这套题多好. BZOJ4816 数字表格 SB反演,推出答案为$\prod_{i=1}^nf^{\ ...
- bzoj2750Road——最短路计数
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2750 以每个点作为源点,spfa跑出一个最短路图(不一定是树,因为可能很多条最短路一样长): ...
- SPOJ(后缀数组求不同子串个数)
DISUBSTR - Distinct Substrings Given a string, we need to find the total number of its distinct subs ...
- 升级python之后yum不可用
#修改yum文件 vi /usr/bin/yum 将文件头部的 #!/usr/bin/python 改为默认的python文件,例如 #!/usr/bin/python2.7.3 整个过程完成了. 同 ...
- 确认框的使用。弹出一个确认框,Ajax提交一个请求,刷新页面。
视图: <td> @if (item.ReviewProject.DeclareState == DeclareOrReviewState.正在进行 && !item.Is ...
- 3-C++程序的结构1.3
类的友元 一个类之外的函数,又与该类有特殊关系! 友元关系提供了不同类或对象的成员函数之间.类的成员函数与一般函数之间进行数据共享的机制.通俗地说,友元关系就是一个类主动声明那些其他类或函数是它的朋友 ...