国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微信網頁授權之使用完整服務解決方案

這篇具有很好參考價值的文章主要介紹了微信網頁授權之使用完整服務解決方案。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

微信網頁授權能力調整造成的問題

能力調整的內容和理由

原有運行方案

is_snapshotuser字段?

改造原有方案

如何復現(xiàn)測試場景

小結


微信網頁授權能力調整造成的問題

依附于第三方的開發(fā),做為開發(fā)者經常會遇到第三方進行規(guī)范和開發(fā)的調整,如開發(fā)騰訊微信的相關應用。我所經歷的如小程序隱私政策調整、信息備案調整、微信授權獲取個人信息限制調整等。

最近我們的一些項目因為微信頁面授權能力的調整出現(xiàn)了一些問題,對于新用戶未經授權前,微信開發(fā)團隊給出的輸出是快照頁,該頁內所獲取的openId等均為虛擬賬號數(shù)據,并在屏幕下方非常不明顯的顯示“使用完整服務”,如下圖所示:

微信完整服務授權,微信,c#

此圖即是微信給出的授權提示,也是我們折中的解決方案,圖中所示的提示框源自己于我們通過攜帶的參數(shù)反饋給用戶的提示,以引導用戶點擊下方的“使用完整服務”鏈接,并進行授權。

能力調整的內容和理由

微信團隊給出的解釋是當開發(fā)者在網頁中在不規(guī)范使用發(fā)起 snsapi_userinfo 網頁授權時,微信將默認打開網頁快照頁模式進行基礎瀏覽。

微信網頁授權規(guī)范

  1. 授權流程需引導清晰、準確:在申請獲取用戶信息的彈窗出現(xiàn)前,應該清晰、準確地告知用戶獲取信息的范圍及獲取信息的目的;
  2. 必要場景申請:在必須獲取用戶信息時才申請,而不是用戶尚未了解服務前就強制彈窗。如使用醫(yī)院掛號時才需要獲取用戶信息;
  3. 不強制登錄:提供游客模式,供用戶了解網頁提供的基礎服務,不強制用戶允許網頁獲取用戶信息后才能使用網頁服務。

常見的微信網頁授權不規(guī)范使用案例

  1. 強制登錄:在用戶打開網頁時立即要求用戶授權,用戶拒絕后無法使用網頁提供的服務;
  2. 違規(guī)收集個人信息:未在網頁提前告知使用個人信息的目的、方式和范圍;
  3. 非必要收集:非必要獲取用戶信息的網頁,如文章、視頻等,要求用戶在瀏覽內容前登錄;
  4. 差別對待微信用戶:同樣的網頁在瀏覽器內可以無需登錄直接訪問,在微信內卻要求用戶先登錄才可訪問。

原有運行方案

微信OA2授權訪問地址如下(示例url為C#字符串):

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx7964497eb8bad783&redirect_uri=https%3A//www.leadihr.com/weixin/oa2.aspx%3F&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect&connect_redirect = 1

重定向接收地址 OA2.ASPX程序?(C#版本)

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;
using System.Collections;
using System.Net;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using LitJson;
using System.Data;
using System.Data.SqlClient;
using CosysJaneCommonAPI;
using System.Web.Script.Serialization;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;

public partial class oa2 : System.Web.UI.Page
{


    string Appid = "";
    string appsecret = "";

    string domain = "";


    
    public class OAuth_Token
    {
        public OAuth_Token()
        {
        }
        //access_token  網頁授權接口調用憑證,注意:此access_token與基礎支持的access_token不同  
        //expires_in    access_token接口調用憑證超時時間,單位(秒)  
        //refresh_token 用戶刷新access_token  
        //openid    用戶唯一標識,請注意,在未關注公眾號時,用戶訪問公眾號的網頁,也會產生一個用戶和公眾號唯一的OpenID  
        //scope 用戶授權的作用域,使用逗號(,)分隔  
        public string access_token { get; set; }
        public string expires_in { get; set; }
        public string refresh_token { get; set; }
        public string openid { get; set; }
        public string scope { get; set; }

    }


    public class OAuthUser
    {
        public OAuthUser()
        { }
        #region 數(shù)據庫字段
        private string _openID;
        private string _searchText;
        private string _unionid;
        private string _nickname;
        private string _sex;
        private string _province;
        private string _city;
        private string _country;
        private string _headimgUrl;
//        private string _privilege;
        #endregion

        #region 字段屬性
        /// <summary>  
        /// 用戶的唯一標識  
        /// </summary>  
        public string openid
        {
            set { _openID = value; }
            get { return _openID; }
        }
        public string SearchText
        {
            set { _searchText = value; }
            get { return _searchText; }
        }
        /// <summary>  
        /// 用戶昵稱   
        /// </summary>  
        public string nickname
        {
            set { _nickname = value; }
            get { return _nickname; }
        }
        public string unionid
        {
            set { _unionid = value; }
            get { return _unionid; }
        }
        /// <summary>  
        /// 用戶的性別,值為1時是男性,值為2時是女性,值為0時是未知   
        /// </summary>  
        public string sex
        {
            set { _sex = value; }
            get { return _sex; }
        }
        /// <summary>  
        /// 用戶個人資料填寫的省份  
        /// </summary>  
        public string province
        {
            set { _province = value; }
            get { return _province; }
        }
        /// <summary>  
        /// 普通用戶個人資料填寫的城市   
        /// </summary>  
        public string city
        {
            set { _city = value; }
            get { return _city; }
        }
        /// <summary>  
        /// 國家,如中國為CN   
        /// </summary>  
        public string country
        {
            set { _country = value; }
            get { return _country; }
        }
        /// <summary>  
        /// 用戶頭像,最后一個數(shù)值代表正方形頭像大?。ㄓ?、46、64、96、132數(shù)值可選,0代表640*640正方形頭像),用戶沒有頭像時該項為空  
        /// </summary>  
        public string headimgurl
        {
            set { _headimgUrl = value; }
            get { return _headimgUrl; }
        }
        /// <summary>  
        /// 用戶特權信息,json 數(shù)組,如微信沃卡用戶為(chinaunicom)其實這個格式稱不上JSON,只是個單純數(shù)組  
        /// </summary>  
        //public string privilege
        //{
        //    set { _privilege = value; }
        //    get { return _privilege; }
        //}
        #endregion
    }      

protected void Page_Load(object sender, EventArgs e)  
    {

        if (!IsPostBack)  
        {
            if (!string.IsNullOrEmpty(Request.QueryString["code"]))  
            {  
                string Code = Request.QueryString["code"].ToString();
                string State = Request.QueryString["state"].ToString();
                //獲得Token  
                OAuth_Token Model = Get_token(Code);
                OAuthUser OAuthUser_Model = Get_UserInfo(Model.access_token, Model.openid);
                string content=Model.access_token+ "用戶OPENID:" + OAuthUser_Model.openid + "<br>用戶昵稱:" + OAuthUser_Model.nickname + "<br>性別:" + OAuthUser_Model.sex + "<br>所在省:" + OAuthUser_Model.province + "<br>所在市:" + OAuthUser_Model.city + "<br>所在國家:" + OAuthUser_Model.country + "<br>頭像地址:" + OAuthUser_Model.headimgurl + "<br>用戶特權信息:";




                    Response.Redirect("https://x.x.com/index.aspx?&oid=" + OAuthUser_Model.openid);
                  
            }  
        }  
    }
public class JsonHelper
{
    /// <summary>
    /// 生成Json格式
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="obj"></param>
    /// <returns></returns>
    public static string GetJson<T>(T obj)
    {
        DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType());
        using (MemoryStream stream = new MemoryStream())
        {
            json.WriteObject(stream, obj);
            string szJson = Encoding.UTF8.GetString(stream.ToArray()); return szJson;
        }
    }
    /// <summary>
    /// 獲取Json的Model
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="szJson"></param>
    /// <returns></returns>
    public static T ParseFromJson<T>(string szJson)
    {
        T obj = Activator.CreateInstance<T>();
        using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))
        {
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
            return (T)serializer.ReadObject(ms);
        }
    }
}  
    //獲得Token  
    protected OAuth_Token Get_token(string Code)  
    {  
        string Str = GetJson("https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + Appid + "&secret=" + appsecret + "&code=" + Code + "&grant_type=authorization_code");
        
        
        OAuth_Token Oauth_Token_Model = JsonHelper.ParseFromJson<OAuth_Token>(Str);  
        return Oauth_Token_Model;  
    }  
    //刷新Token  
    protected OAuth_Token refresh_token(string REFRESH_TOKEN)  
    {  
        string Str = GetJson("https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=" + Appid + "&grant_type=refresh_token&refresh_token=" + REFRESH_TOKEN);  
        OAuth_Token Oauth_Token_Model = JsonHelper.ParseFromJson<OAuth_Token>(Str);  
        return Oauth_Token_Model;  
    }  
    //獲得用戶信息  
    protected OAuthUser Get_UserInfo(string REFRESH_TOKEN, string OPENID)  
    {  
       // Response.Write("獲得用戶信息REFRESH_TOKEN:" + REFRESH_TOKEN + "||OPENID:" + OPENID);  
        string Str = GetJson("https://api.weixin.qq.com/sns/userinfo?access_token=" + REFRESH_TOKEN + "&openid=" + OPENID + "&lang=zh_CN");  
        OAuthUser OAuthUser_Model = JsonHelper.ParseFromJson<OAuthUser>(Str);
        return OAuthUser_Model;  
    }  
    protected string GetJson(string url)  
    {  
        WebClient wc = new WebClient();  
        wc.Credentials = CredentialCache.DefaultCredentials;  
        wc.Encoding = Encoding.UTF8;
        string returnText = "";
        try
        {
            returnText = wc.DownloadString(url);
        }
        catch (Exception e)
        {
            Response.Write(e.Message);
            Response.End();
        }
        if (returnText.Contains("errcode"))  
        {  
            //可能發(fā)生錯誤  
        }  
        //Response.Write(returnText);  
        return returnText;  
    }  
  
}

is_snapshotuser字段?

通過code換取網頁授權access_token
請求方法是獲取code后,請求以下鏈接獲取access_token:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

正確時會返回具有如下圖所示的JSON數(shù)據包:

微信完整服務授權,微信,c#

因此可能通過判斷 is_snapshotuser 字段是否為1,判斷是否快照頁模式

改造原有方案

主要是增加?string is_snapshotuser = "0" 和后續(xù)對JSON返回值的判斷,并返回回調的url并攜帶此參數(shù)。示例代碼如下:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;
using System.Collections;
using System.Net;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using LitJson;
using System.Data;
using System.Data.SqlClient;
using CosysJaneCommonAPI;
using System.Web.Script.Serialization;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;

public partial class oa2 : System.Web.UI.Page
{


    string Appid = "";
    string appsecret = "";

    string domain = "";
    string is_snapshotuser = "0";


    
    public class OAuth_Token
    {
        public OAuth_Token()
        {
        }
        //access_token  網頁授權接口調用憑證,注意:此access_token與基礎支持的access_token不同  
        //expires_in    access_token接口調用憑證超時時間,單位(秒)  
        //refresh_token 用戶刷新access_token  
        //openid    用戶唯一標識,請注意,在未關注公眾號時,用戶訪問公眾號的網頁,也會產生一個用戶和公眾號唯一的OpenID  
        //scope 用戶授權的作用域,使用逗號(,)分隔  
        public string access_token { get; set; }
        public string expires_in { get; set; }
        public string refresh_token { get; set; }
        public string openid { get; set; }
        public string scope { get; set; }

    }


    public class OAuthUser
    {
        public OAuthUser()
        { }
        #region 數(shù)據庫字段
        private string _openID;
        private string _searchText;
        private string _unionid;
        private string _nickname;
        private string _sex;
        private string _province;
        private string _city;
        private string _country;
        private string _headimgUrl;
//        private string _privilege;
        #endregion

        #region 字段屬性
        /// <summary>  
        /// 用戶的唯一標識  
        /// </summary>  
        public string openid
        {
            set { _openID = value; }
            get { return _openID; }
        }
        public string SearchText
        {
            set { _searchText = value; }
            get { return _searchText; }
        }
        /// <summary>  
        /// 用戶昵稱   
        /// </summary>  
        public string nickname
        {
            set { _nickname = value; }
            get { return _nickname; }
        }
        public string unionid
        {
            set { _unionid = value; }
            get { return _unionid; }
        }
        /// <summary>  
        /// 用戶的性別,值為1時是男性,值為2時是女性,值為0時是未知   
        /// </summary>  
        public string sex
        {
            set { _sex = value; }
            get { return _sex; }
        }
        /// <summary>  
        /// 用戶個人資料填寫的省份  
        /// </summary>  
        public string province
        {
            set { _province = value; }
            get { return _province; }
        }
        /// <summary>  
        /// 普通用戶個人資料填寫的城市   
        /// </summary>  
        public string city
        {
            set { _city = value; }
            get { return _city; }
        }
        /// <summary>  
        /// 國家,如中國為CN   
        /// </summary>  
        public string country
        {
            set { _country = value; }
            get { return _country; }
        }
        /// <summary>  
        /// 用戶頭像,最后一個數(shù)值代表正方形頭像大?。ㄓ?、46、64、96、132數(shù)值可選,0代表640*640正方形頭像),用戶沒有頭像時該項為空  
        /// </summary>  
        public string headimgurl
        {
            set { _headimgUrl = value; }
            get { return _headimgUrl; }
        }
        /// <summary>  
        /// 用戶特權信息,json 數(shù)組,如微信沃卡用戶為(chinaunicom)其實這個格式稱不上JSON,只是個單純數(shù)組  
        /// </summary>  
        //public string privilege
        //{
        //    set { _privilege = value; }
        //    get { return _privilege; }
        //}
        #endregion
    }      

protected void Page_Load(object sender, EventArgs e)  
    {

        if (!IsPostBack)  
        {
            if (!string.IsNullOrEmpty(Request.QueryString["code"]))  
            {  
                string Code = Request.QueryString["code"].ToString();
                string State = Request.QueryString["state"].ToString();
                //獲得Token  
                OAuth_Token Model = Get_token(Code);
                OAuthUser OAuthUser_Model = Get_UserInfo(Model.access_token, Model.openid);
                string content=Model.access_token+ "用戶OPENID:" + OAuthUser_Model.openid + "<br>用戶昵稱:" + OAuthUser_Model.nickname + "<br>性別:" + OAuthUser_Model.sex + "<br>所在省:" + OAuthUser_Model.province + "<br>所在市:" + OAuthUser_Model.city + "<br>所在國家:" + OAuthUser_Model.country + "<br>頭像地址:" + OAuthUser_Model.headimgurl + "<br>用戶特權信息:";




                    Response.Redirect("https://x.x.com/index.aspx?&oid=" + OAuthUser_Model.openid+"&is_snapshotuser="+is_snapshotuser);
                  
            }  
        }  
    }
public class JsonHelper
{
    /// <summary>
    /// 生成Json格式
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="obj"></param>
    /// <returns></returns>
    public static string GetJson<T>(T obj)
    {
        DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType());
        using (MemoryStream stream = new MemoryStream())
        {
            json.WriteObject(stream, obj);
            string szJson = Encoding.UTF8.GetString(stream.ToArray()); return szJson;
        }
    }
    /// <summary>
    /// 獲取Json的Model
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="szJson"></param>
    /// <returns></returns>
    public static T ParseFromJson<T>(string szJson)
    {
        T obj = Activator.CreateInstance<T>();
        using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))
        {
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
            return (T)serializer.ReadObject(ms);
        }
    }
}  
    //獲得Token  
    protected OAuth_Token Get_token(string Code)  
    {  
        string Str = GetJson("https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + Appid + "&secret=" + appsecret + "&code=" + Code + "&grant_type=authorization_code");
        if (Str.IndexOf("\"is_snapshotuser\":1") != -1||Str.IndexOf("\"is_snapshotuser\": 1")!=-1)
        {
            is_snapshotuser = "1";
        }
        OAuth_Token Oauth_Token_Model = JsonHelper.ParseFromJson<OAuth_Token>(Str);  
        return Oauth_Token_Model;  
    }  
    //刷新Token  
    protected OAuth_Token refresh_token(string REFRESH_TOKEN)  
    {  
        string Str = GetJson("https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=" + Appid + "&grant_type=refresh_token&refresh_token=" + REFRESH_TOKEN);  
        OAuth_Token Oauth_Token_Model = JsonHelper.ParseFromJson<OAuth_Token>(Str);  
        return Oauth_Token_Model;  
    }  
    //獲得用戶信息  
    protected OAuthUser Get_UserInfo(string REFRESH_TOKEN, string OPENID)  
    {  
       // Response.Write("獲得用戶信息REFRESH_TOKEN:" + REFRESH_TOKEN + "||OPENID:" + OPENID);  
        string Str = GetJson("https://api.weixin.qq.com/sns/userinfo?access_token=" + REFRESH_TOKEN + "&openid=" + OPENID + "&lang=zh_CN");  
        OAuthUser OAuthUser_Model = JsonHelper.ParseFromJson<OAuthUser>(Str);
        return OAuthUser_Model;  
    }  
    protected string GetJson(string url)  
    {  
        WebClient wc = new WebClient();  
        wc.Credentials = CredentialCache.DefaultCredentials;  
        wc.Encoding = Encoding.UTF8;
        string returnText = "";
        try
        {
            returnText = wc.DownloadString(url);
        }
        catch (Exception e)
        {
            Response.Write(e.Message);
            Response.End();
        }
        if (returnText.Contains("errcode"))  
        {  
            //可能發(fā)生錯誤  
        }  
        //Response.Write(returnText);  
        return returnText;  
    }  
  
}

這樣可以在業(yè)務頁面,如上述代碼中的index.aspx進行如下判斷:

if (Request.QueryString["is_snapshotuser"] == "1")
{
    Layer.open("使用前微信要求您的授權,請點擊下方使用完整服務后繼續(xù)...", "'確定'", "info");
    return;
}

如何復現(xiàn)測試場景

已經授權的用戶,如果想測試重新授權的場景,請打開微信,依如下步驟進行設置:

微信完整服務授權,微信,c#

微信完整服務授權,微信,c#

微信完整服務授權,微信,c#

?文章來源地址http://www.zghlxwxcb.cn/news/detail-830072.html

?

微信完整服務授權,微信,c#

微信完整服務授權,微信,c#

?

?

微信完整服務授權,微信,c#

小結

以上示例是一種較小改動的解決方案,個人比較習慣于應用程序穩(wěn)定性第一的思路。如果已經使用新規(guī)則設計方案則可僅供參考。

另外在此介紹一下關于網頁授權的兩種scope的區(qū)別:
1、以snsapi_base為scope發(fā)起的網頁授權,可以直接獲取進入頁面的用戶的openid,且是靜默授權并自動跳轉到業(yè)務頁面。
2、以snsapi_userinfo為scope發(fā)起的網頁授權,是用來獲取用戶的基本信息的。需要用戶手動同意,無須關注,就可在授權后獲取該用戶的基本信息。

以上是個人的一些觀點和解決方案,感謝閱讀,并提出指正。

?

?

?

到了這里,關于微信網頁授權之使用完整服務解決方案的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 微信小程序沒法獲取用戶地理位置完整解決方案

    微信小程序沒法獲取用戶地理位置完整解決方案

    微信小程序官方文檔提示:自 2022 年 7 月 14 日后發(fā)布的小程序,若使用該接口,需要在 app.json 中進行聲明,否則將無法正常使用該接口,2022年7月14日前發(fā)布的小程序不受影響 為了查找沒法定位原因花了半個小時時間認真查看官方文檔,最后把wx.getLocation(Object object)接口失敗

    2024年02月12日
    瀏覽(17)
  • Windows Server沒有遠程桌面授權服務器可以提供許可證解決方案

    Windows Server沒有遠程桌面授權服務器可以提供許可證解決方案

    Windows server 2012服務器遠程桌面登錄時出現(xiàn)錯誤提示:“由于沒有遠程桌面授權服務器可以提供許可證,遠程會話被中斷。請跟服務器管理員聯(lián)系?!贝藭r可以使用“mstsc /admin /v:目標ip”來強制登錄服務器,只能是管理員身份。 微軟官方的解釋: 因為 Windows 應用商店的應用程

    2024年02月09日
    瀏覽(34)
  • 微信|QQ掃碼登錄網頁版二維碼失效問題解決方案 網站無法訪問PC網頁版如何解決 安卓軟件歷史版本下載 FV fooview懸浮球幫助教程

    微信|QQ掃碼登錄網頁版二維碼失效問題解決方案 網站無法訪問PC網頁版如何解決 安卓軟件歷史版本下載 FV fooview懸浮球幫助教程

    ? ? ? ?1. 手機端瀏覽器登錄網頁的同時再用微信或者QQ掃碼登錄出現(xiàn)二維碼失效問題如何解決? ???????? ? ? ? ? ?2.部分網站無法訪問PC網頁版如何解決?請看方案 目錄 前言 1.方案 2.方案 ? ? ? 使用Edge安卓瀏覽器訪問電腦版網頁 1.操作 ? ? ? 1.1小米瀏覽器+微信(應用

    2023年04月08日
    瀏覽(25)
  • 微信-網頁授權

    微信-網頁授權

    參考文檔 基礎配置? ? ? 代碼測試說明測試公眾號配置你本地的ip 完整的代碼在文字末尾 ?下載微信的開發(fā)者工具 公眾號AppId以及AppSecret的申請,并可以獲取到token 注意 ? 回調地址需要和js安全域名配置為同一個 ? 授權地址必須在微信執(zhí)行(本地在微信的開發(fā)工具進行執(zhí)行

    2024年02月13日
    瀏覽(18)
  • 微信小程序藍牙授權完整流程

    微信小程序藍牙授權完整流程

    ? ? ? ? 1.1 authorize: ????????????????提前向用戶發(fā)起授權請求。調用后會立刻彈窗詢問用戶是否同意授權小程序使用某項功能或獲取用戶的某些數(shù)據,但不會實際調用對應接口。如果用戶之前已經同意授權,則不會出現(xiàn)彈窗,直接返回成功。更多用法詳見 用戶授權。

    2024年04月27日
    瀏覽(103)
  • 微信網頁授權,以及如何在本地調試

    微信網頁授權,以及如何在本地調試

    1.微信網頁如果要授權,需要登錄微信公眾平臺,然后在自己公眾號-公眾號設置-功能設置-網頁授權配置 回調網頁地址(就是redirect_url,具體參考官網網頁授權中有介紹)。但是這種需要域名,也就是需要將網頁部署在配置的域名服務器上,這顯然對于我們開發(fā)階段不適合調試

    2024年02月10日
    瀏覽(11)
  • 微信公眾號開發(fā)——實現(xiàn)用戶微信網頁授權流程

    微信公眾號開發(fā)——實現(xiàn)用戶微信網頁授權流程

    ?? @ 作者: 一恍過去 ?? @ 主頁: https://blog.csdn.net/zhuocailing3390 ?? @ 社區(qū): Java技術棧交流 ?? @ 主題: 微信公眾號開發(fā)——實現(xiàn)用戶微信網頁授權流程 ?? @ 創(chuàng)作時間: 2022年12月16日 1、在本地進行聯(lián)調時,為讓微信端能夠訪問到本地服務,需要進行內網穿透,參考《本地

    2023年04月17日
    瀏覽(16)
  • ColossalChat:使用完整的 RLHF Pipeline復現(xiàn)ChatGPT 的開源解決方案

    ColossalChat:使用完整的 RLHF Pipeline復現(xiàn)ChatGPT 的開源解決方案

    ? ? ? ? ChatGPT、GPT-4等大型AI模型和應用在全球范圍內風靡一時,成為技術產業(yè)革命和AGI(Artificial General Intelligence)發(fā)展的基礎。 不僅科技巨頭競相發(fā)布新品,許多來自學術界和產業(yè)界的人工智能專家也加入了相關的創(chuàng)業(yè)浪潮。 生成式 AI 每天都在快速迭代,不斷完善! ?

    2023年04月24日
    瀏覽(25)
  • Selenium使用Edge打開網頁出現(xiàn)“你的連接不是專用連接xxx”解決方案

    Selenium使用Edge打開網頁出現(xiàn)“你的連接不是專用連接xxx”解決方案

    ?當嘗試訪問的網站使用的是自簽名的SSL證書或者沒有使用SSL證書時出現(xiàn)“你的連接不是專用連接xxx”。這種情況經常發(fā)生在訪問內網地址或開發(fā)環(huán)境時通過以下代碼打開網站有時會出現(xiàn)。 可參考如下方法解決:

    2024年04月11日
    瀏覽(28)
  • Vue+Springboot前后端完整使用國密算法SM2雙公私鑰對數(shù)據加密傳輸交互完整解決方案

    Vue+Springboot 前后端完整使?國密算法SM2雙公私鑰對數(shù)據加密傳輸交互完整解決?案項?,特別是企事業(yè)單位的項?,第三方測試公司做安全測試時,常常要求使用國密算法,因涉及服務端和客戶端的交互,傳遞關鍵數(shù)據時要求使用SM2非對稱加密。 引入相關依賴 這里我使用的

    2024年01月23日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包