欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 基于bmob快速搭建小程序用户模块(包括登录、当前用户、用户安全) ...

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:737

高端HTML5响应式企业通用网

2020-05-06   浏览:518

html5响应式外贸网站英文版

2020-05-08   浏览:505

HTML5自适应律师工作室类网

2020-04-04   浏览:501

HTML5影视传媒文化公司类网

2020-05-12   浏览:495

基于bmob快速搭建小程序用户模块(包括登录、当前用户、用户安全) ...

发布时间:2020-12-18  
一键登录  

开发小程序登录后端工作:

客户端调用wx.login()后获取的code,后端人员拿到code和微信换取openid和session_key;

除此之外后端人员还需要根据openid生成sessiontoken作为服务器和小程序之间做登录态校验保证安全性,客户端每次请求需要带上sessiontoken,后端需要作校验;

还需要提供接口给客户端保存用户信息(头像、名称等),或者根据openid去和微信换取用户信息;

中间的过程的调试还需要花费大量的时间

利用bmob的小程序sdk的实现一键登录:
以上后端开发工作全省了!!

wx.login({ success: function (res) { var user = new Bmob.User();//实例化 user.loginWithWeapp(res.code).then(function (user) { if (user.get("nickName")) { //更新缓存中的openid wx.setStorageSync('openid', user.get("openid")) } else { //*************保存用户其他信息,比如昵称头像之类的***************** wx.getUserInfo({ success: function (result) { var nickName = result.userInfo.nickName; var avatarUrl = result.userInfo.avatarUrl; var u = Bmob.Object.extend("_User"); var query = new Bmob.Query(u); // 这个 id 是要修改条目的 id,你在生成这个存储并成功时可以获取到,请看前面的文档 query.get(user.id, { success: function (result) { // 自动绑定之前的账号 result.set('nickName', nickName); result.set("userPic", avatarUrl); result.set("openid", openid); result.save(); } }); } }); //*************保存用户其他信息,比如昵称头像之类的end***************** } }, function (err) { console.log(err, 'errr'); }); } }); }  


user用户对象中的loginWithWeapp方法使用当前使用小程序的微信用户身份注册或登录,成功后用户的 session 会在设备上持久化保存,之后可以使用 Bmob.User.current() 获取当前登录用户

如果该用户是第一次使用此应用,调用登录 API 会创建一个新的用户,你可以在 控制台 >应用> 数据 中的 _User表中看到该用户的信息,如果该用户曾经使用该方式登录过此应用,再次调用登录 API 会返回同一个用户。

登录后获取到一个用户数据对象,包括用户唯一标识objectId、openid、nickName、avatarUrl、authData,authData包括sessiontoken登录校验,小程序sdk封装了请求带上了缓存authData的sessiontoken,所以session_token这部分 不需要bmob的开发者考虑;

当前用户  

如果用户每次打开App的时候都要求登录无疑是令人感到厌烦的,你可以通过缓存当前的Bmob.User对象来避免这个问题。

无论你使用任何注册或者登录方法,用户都会在localStorage中储存,你可以把缓存作为一个session对待,并且自动假设用户已经登录了。

你可以操作Bmob.User.current()来获取当前用户的信息

var currentUser = Bmob.User.current(); 用户安全  

Bmob.User类默认就是受保护的,在Bmob.User中保存的数据只能被那个用户所修改。默认地,数据仍然可以被任意客户端所读取。这样就是说,有些Bmob.User对象被认证后是可以修改的,其他的仍然是只读的。

特别的,你不能调用save或者delete方法除非Bmob.User经过了认证,就比如调用过了logIn或者signUp方法,这样保证只有用户能改动他们自身的数据。

本文标签

:备案管家服务帮您把复杂流程变简单,解决您在进行网站备案过程中遇到的效率低下和成功率不高的问题。个人300/2个域名,企业500/5个域名,qq1650004.