每一个微信小程序对应每一个用户都有一个固定的ID,这个ID就是openid。 博主想把“小汽车保养里程碑单机版”搬上微信小程序,第一件事情应该就是在小程序中能够识别不同的用户,每个用户自己保存自己的数据,需要一个唯一的识别号,就是这个openid。
先看看小程序官方的说明:
第一步、调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。
第二步、调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 。
博主第一次接触这些功能,感觉有点复杂呢,不过用了一天时间,也还是搞定了获取openid。首先在小程序中弄一个按钮:
ts中定义点击按钮,第一步访问微信的服务器获得一个code。
user_login: function () {
wx.login({
success: (res0) =>
{
console.log(res0);
// let code = res.code
let that = this
wx.request
({
url: 'https://w1914z4829.zicp.fun/user_code',
method: "POST", //请求的方式
data: { code: res0.code },
success: (res1) => { console.log(res1) , that.setData({ openid_list: res1 }) }
})
},
})
},
拿到code后,继续访问自己的后端服务器。后端服务器技术栈是C#的webapi + EFcore + SQLite。后端服务器接到一个post请求,code在http的报文中:
//-------POST---user_code API-----------
app.MapPost("/user_code", async (HttpRequest request) =>
{
var user_code = await request.ReadFromJsonAsync<user_code>();
string openid = null;
if (user_code != null)
{
openid = get_openid(user_code.code);
Console.Write("openid:" + openid);
}
return openid;
});
后端服务器再去请求微信的服务器:
string get_openid(string js_code)//获取前端传过来的值
{
string url = "https://api.weixin.qq.com/sns/jscode2session?appid=wx1853c69dc576xxxx&secret=6859400ccef19af901a8cbfb167exxxx&js_code=" + js_code + "&grant_type=authorization_code";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return retString;
}
微信服务器返回了openid给我的后端服务器,还返回了session key,暂时不知道拿来做什么。
后端服务器API把openid返回给了微信小程序,小程序把openid显示了出来。
文章来源:https://www.toymoban.com/news/detail-599808.html
有了这个openid,小程序就可以区分用户的数据,我只需要在数据库的表中加一个openid字段,每次用户提交数据,保存上相应的openid,这些数据就自然属于这个用户了。文章来源地址https://www.toymoban.com/news/detail-599808.html
到了这里,关于用户登录 openid(微信小程序无师自通三)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!