給linux命令在線中文手冊加了,qq登陸和新浪微博登陸,認證用的是auth2.0,而且用了js api和php api相結合的方式來作的。我的以爲這種方式,兼顧安全和人性化。之前寫過一篇關於申請的博客,請參考:qq登陸,新浪微博登陸接口申請過程當中遇到的問題javascript
1,js api的優勢,就是彈窗登陸,不要跳來跳去,煩的很,數據都是後獲取的,能夠經過瀏覽器的開發者工具,看到返回的數據,這樣保存api返回的數據就不安全了,在瀏覽器上能夠直接寫代碼,模擬提交php
2,php api的缺點,頁面跳轉,我的感受跳來跳去,很是讓人不爽。可是在保存數據時,要安全的多,而且隨時能夠到第三方進行數據審覈。html
若是兩者結合起來,不用跳來跳去,數據也能夠獲得校驗。java
一,qq登陸linux
qq登陸,JS API登陸,並獲取我的數據,異步提交給php程序,php程序,對提交來的數據,進行第三方校驗,也就是說,根據傳來的參數,在請求一次php的api,來獲取信息,入本地數據庫。qq的open id是qq的惟一標識,主要代碼以下。ajax
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代碼api
- 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();
-
- $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登陸比微博登陸好的太多。新浪微博團隊能不能改進一下呢。這就比如,有了家電,沒有說明書是同樣的。