日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

wap2app(五)-- 微信授权登录以及踩过的坑

發布時間:2024/5/24 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 wap2app(五)-- 微信授权登录以及踩过的坑 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

應用場景是:用Hbuilder打包app,在app中點擊微信授權登錄或者某一操作,調起微信授權登錄,用戶授權后拿到用戶信息。

一、登錄插件配置

先配置微信登錄參數 appid和appsecret,在manifest.json 文件中選擇SDK配置,登錄鑒權 勾選微信登錄,填入在開放平臺申請的app參數。

在manifest.json 文件中選擇 源碼視圖,找到“OAuth”,配置為

"OAuth" : {
    "description" : "登錄授權"
},

官方相關查閱地址:http://ask.dcloud.net.cn/docs/

二、在網站中添加授權登錄代碼

我的需求是:在網站中點擊微信授權登錄,判斷是否來自wap2app,如果來自wap2app則調起微信授權登錄。在網站中加入如下代碼:

1.點擊微信授權登錄,獲取微信授權服務:

var auths=null;
$("body").on("click",".loginBtn",function(){
    // 微信授權登錄
    if(navigator.userAgent.indexOf("Html5Plus") > -1){
        plus.oauth.getServices( function(services){
            auths = services;
            authLogin();
        }, function(e){
            alert("獲取分享服務列表失敗:"+e.message+" - "+e.code);
        } );
    }

})

2.登錄認證

//登錄
function authLogin(){
    var s = auths[0];
    if ( !s.authResult ) {
        s.login( function(e){
            // 獲取登錄操作結果
            var result = e.target.authResult;
            alert( "登錄認證成功:"+JSON.stringify(result) );
            authUserInfo()
        }, function(e){
            alert("登錄認證失??!");
        }, {} );
    }
}

3.獲取用戶信息

// 獲取登錄用戶信息操作
function authUserInfo(){
    var s = auths[0];
    if ( !s.authResult ) {
        alert("未登錄授權!");
    } else {
        s.getUserInfo( function(e){
            alert( "獲取用戶信息成功:"+JSON.stringify(s.userInfo) );

            //拿到用戶信息,進行相關處理,ajax傳用戶數據到服務器等
            var prame = JSON.stringify(s.userInfo);

        }, function(e){
            alert( "獲取用戶信息失?。?+e.message+" - "+e.code );
        } );
    }
}

4.退出登錄

function authLogout(){
    for ( var i in auths ) {
        var s = auths[i];
        if ( s.authResult ) {
            s.logout(function(e){
                alert( "注銷登錄認證成功!" );
            }, function(e){
                alert( "注銷登錄認證失?。? );
            });
        }
    }
}

官方相關查閱地址:http://www.html5plus.org/doc/zh_cn/oauth.html

在hbuilder中運行會發現可以調起微信授權,且可以獲取用戶信息,如下圖:

點擊確認登錄后,返回用戶信息和unionid等信息,如下圖:

但是打包后會一直提示登錄認證失敗,無法授權,也沒有調起微信授權的頁面,主要有以下兩個錯誤:

一、報錯 code = -2,用戶取消

解決辦法:研究了很久,發現主要是兩個原因:1.使用了網站的appid和appsecret,應該是申請的app應用的appid和appsecret,2.應該使用自有證書

依舊還是報錯 code = -2,檢查是否在線上運行,即在開放平臺綁定的域名必須與該項目的域名一致,即我們常說的,微信分享、微信登錄必須在線上測試

二、報錯 code = -100如下圖

問題1:檢查應用簽名是否錯誤

問題2:檢查開放平臺的配置授權回調域名是否配置,且是否配置正確(www.baidu.com格式)

解決辦法:

微信開放平臺移動應用中的應用簽名錯誤,若申請應用時開發信息中數據填寫錯誤,直接修改,已審核通過的不需要重寫審核。

應用簽名的要求:

1.MD5格式 2.簽名為小寫;3.去除冒號。都為必須條件。

在Hbuilder中配置時,簽名也必須是修改后的格式(md5、小寫、去冒號)。

Hbuilder中配置應用簽名時,打開manifest.json文件,打開“源碼視圖”(基礎配置,圖標配置,啟動圖配置,SDK配置,模塊權限配置中都是沒有應用簽名配置的,所以很容易遺漏修改它的值),找到plus -->signature,修改signature的值為符合條件的值即可

以上打包之后,不在報錯,但是還有一個問題,在app中點擊微信授權后,除了首次會調起微信授權手動授權的界面,再次授權時直接就彈出了用戶信息,即直接執行了,缺少用戶在終端確認的請求授權過程

alert( "登錄認證成功:"+JSON.stringify(result) );

這是因為,授權的微信號只有首次授權時才會調起微信授權的頁面,當退出微信授權再次進入時,點擊授權會跳轉之后再跳回來,自動獲取到用戶信息。

打包app,微信授權登錄常遇到的問題總結

1.使用了網站的appid和appsecret,應該是申請的app應用的appid和appsecret

2.應該使用自有證書

3.微信開放平臺移動應用中的應用簽名錯誤,必須滿足3點:1.MD5格式 2.簽名為小寫;3.去除冒號。都為必須條件。

4.(網站或打包app)微信授權登錄,必須在開放平臺配置授權回調域名,且必須是www形式的,如www.baidu.com,否則授權登錄一直報錯

5.開發微信分享、微信登錄等微信相關的功能,在開放平臺或者公眾平臺綁定的域名必須與該項目的域名一致,即我們常說的,微信分享、微信登錄必須在線上測試

轉載時請注明出處及相應鏈接,本文永久地址:https://www.cnblogs.com/wangxiaoling/p/9850717.html,文章標題備注轉載,如:xxx【轉載】,謝謝!

總結

以上是生活随笔為你收集整理的wap2app(五)-- 微信授权登录以及踩过的坑的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。