微信小程序通过授权到服务器,「每天3分钟」搞定微信小程序授权

本文详细介绍了如何在微信小程序中实现账号与微信账号的无缝对接,包括使用wx.login()获取code、通过微信服务器获取openid并存储、以及确保与服务器账号的互通。重点讲解了登录验证优化和openid加密处理的过程,帮助开发者提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

微信小程序提供了一个简单、高效的应用开发框架和丰富的组件及API,能够使开发者开发具有原生APP体验的服务。在微信小程序异军突起后,使得众多的中小型企业迎来了二次创业的机会。同时,微信小程序依托微信,给用户提供了便捷的使用方式,其不用下载即可使用的优点,取得了各行各业的喜爱。市面上,不同类型的微信小程序也不断的出现,如某东,某宝等也纷纷入驻。微信小程序上线以来,受到众多开发者和中小型企业的喜爱,而我司页紧跟大流,希望能够为用户提供更加完善的业务。微信小程序的主要开发语言是JavaScript,所有对开发者来说,是比较容易上手的,对于企业而言,成本是可控的。

1 如何打通自己账号与微信账号的关联

随着微信小程序的不断完善,其提供给开发者的功能不断的优化。同时,需求也不断地跟进。随着功能点的不断增加,如何将微信登录与站点账号绑定变得尤为重要。

如果依旧使用Web端的方式进行登录校验,这样会无辜的多了一步操作,用户在使用时,会感觉繁琐,因此账号的绑定便成为解决的有效方法。

8a22e003c348?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

2 小程序与我的服务器账号互通有无

① 我们通过wx.login()方法拿到微信用户的code;

② 然后通过wx.request()将code传递到我们服务器后台;

③ 根据小程序提供的APPID、SECRET以及传过来的CODE值到微信服务器获取到微信唯一标识openid。

④ 接着我们对openid进行加密处理后返回到小程序前台;

⑤ 用户登录账号后将openid与账号关联,后续访问接口时都带openid。

8a22e003c348?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

3 部分代码//使用wx.login()获取code值

wx.login({

success: function(res) {

if (res.code) {

app.util.commonRequest(getOpenIdUrlPath, {

code: res.code

}, {'content-type': 'application/x-www-form-urlencoded'},

'POST', function(res) {

if(res.statusCode === 200) {

wx.setStorageSync('openid', res.data.openid); //存储openid

wx.setSotrageSync('userInfo', res.data.userInfo);//存储用户信息

wx.reLaunch({

url: '/pages/index/index',

});

}

});

} else {

app.util.showModalTip('提示', res.errMsg, '确定');

}

}

});//返回加密openid

public static String getOpenID(String APPID, String SECRET, String code) {

String openid = "";

String aturl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + APPID + "&secret=" + SECRET

+ "&code=" + code + "&grant_type=authorization_code";

try {

DefaultHttpClient client = new DefaultHttpClient();

HttpGet request = new HttpGet(aturl);

HttpResponse response = client.execute(request);

if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {

String strResult = EntityUtils.toString(response.getEntity());

JSONObject jsonResult = new JSONObject(strResult);

openid = 3RDMD((String) jsonResult.get("openid"));

return openid;

} else {

return "获取OpenID失败";

}

} catch (IOException e) {

return "获取OpenID失败";

}

}

4 一点需要注意的“坑”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值