微信小程序登录实现免费完整版

作者: 顶级云加分类: 校园学习 发布时间: 2019-12-03 11:11:44 浏览:32410 次

微信小程序登录实现免费完整版

举报户:
if(!this.data.userId){ this.getSession(); } }, // 获取登录的code getSession(){ wx.login({ success:res =>{ if(res.code){ app.get(Api.getSession,{ code:res.code }).then(res =>{ store.setItem("openId",res.openid); }).catch(err =>{ console.log(err.message) }) } } }) },这啥意思

【回复】这是调用小程序提供的登录方法。然后成功存储到store中,失败了就抛出错误
啊这厉害了:
登录有一点小问题,按照up的教程做了一下。 感觉还是有优化的地方,openid完全没有必要返回前端,后端仅接受一次性code即可。通过code来获取openid,如果用户表没有,则新建用户,与用户表id绑定。如果用户表有该openid,则登录成功,找到用户。 openid可以md5单向加密后存在表里,登录接口只需要用户的一次性code参数和用户的基本信息,这样的话就不怕冒充用户了。openid不应该放在接口参数里。

【回复】还有改进的地方,同一个用户在腾讯的四个平台下openid都不一样(如:公众号、小程序、安卓IOSAPP中的微信登录)。为了让用户再app中微信登录和在小程序中登录的是同一个账户。最好登录后匹配下这个openid有没有被绑定过,没被绑定过说明改用户在这个平台下第一次登录。就再进行一次手机号授权或者走自己业务进行一次手机号绑定操作。(当然了,也可以用unionid而不用openid,但是unionid需要进行两次授权,比较麻烦)
【回复】用户id建议用session存储,这样的话可以稍微修改一下request.js文件,使微信小程序支持cookie。
TypeHero:
store.js 文件里面,在setItem函数里调用了,this.getItem(module_name),但是getItem(key, module_name){}长成这样,module_name 没用到,看看函数在处理复杂数据的时候是不是写错了。

【回复】回复 @云加_刘云 :看了好几遍仔细考虑了你的代码我认为 let module_name_info = this.getItem(module_name); 第一次存储module_name_info是 undefined,应该这么改: let module_name_info = this.getItem(module_name) || {}; 这就对了。[微笑]
【回复】回复 @云加_刘云 :我是想问你怎么使用,就比如现在我要处理复杂数据,比较有疑问的是let module_name_info = this.getItem(module_name);这个语句去调用getItem()这个函数,getItem()函数有两个参数,但是很明显第二个参数就是处理let module_name_info = this.getItem(module_name);传过来的实参,很明显你虽然在getItem()第二个参数定义了处理方法但是并没有传入第二个参数。 说白了,getItem(key, module_name)第二个参数module_name你看传参了吗??怎么处理复杂数据可以直接给我个例子。这样比较好理解,thank you.
【回复】回复 @TypeHero :let module_name_info = this.getItem(module_name) || {}; 我遇到这个问题了,还好看到你写的这个,谢谢[微笑]
意阳吼:
学到了!!!原来大厂封装的时候还会把手机信息写进去

涩小恋:
请问有没有源码,能分享一下吗[酸了][笑哭]

【回复】https://github.com/plter/WechatAppLoginCourse 这就是源码
【回复】回复 @TOP_YUNP_顶级云加 :谢谢
地处小虾米:
网络请求 怎么么有例子。我不懂怎么调用

【回复】使用 wx.request 函数,这是微信官方文档。https://developers.weixin.qq.com/miniprogram/dev/api/network/request/wx.request.html
LetusGo滑稽:
请问下post请求的话,哪些地方需要进行修改呢

【回复】回复 @bili_77097798699 :我也出现了同样的问题
【回复】回复 @前端-刘加 :代码直接用post请求报错啊,Cannot set property 'method' of undefined
【回复】post和get的区别就请求方法不同,传递方式有区别。其他的没区别的。这里不群分是小程序还是其他技术
山木月风:
有大佬知道怎么将router.push 里面的query数据取出来啊

【回复】回复 @火辣辣的月饼 :好好看文档。在你推过去页面的onLoad(options)这个options参数,包含路由里面的信息[OK]
【回复】研究了半天也没搞定。。 求解答
一个正在路上的程序员:
利用微信小程序云开发设计的小程序,感兴趣的看一看,用来入门刚刚好 https://github.com/nankailiang/MeditationClock 可以的话帮忙点亮一下收藏的小星星[呲牙]

bili_75162734695:
up你好,我照着敲了一个demo,编译器运行没问题,真机调试时提示ruter的页面地址not found,为什么啊?

【回复】回复 @bili_75162734695 :你肯定是手误写错了地址,能不能截图给我看看。
【回复】回复 @TOP_YUNP_顶级云加 :就是调试信息报的错,登录成功我进行页面跳转,使用了ruter映射,运用是成功了,因为映射的地址打印出来了,然而页面没有发生跳转编译器错误提示page ...not found
【回复】在微信中用调试模式运行小程序,可以从控制台看到具体的错误信息。
炸鸡波比:
router.push 要如何把数据传过去呢。。。

【回复】回复 @火辣辣的月饼 :在Page中的onLoad函数有一个传入参数,将它输入你就明白了。 onLoad: function(options) { console.log(options); }
【回复】router.push({ path: 'iwenblog', query: { tdee: 232, cdcd: 3211, } }
砸缸正交:
零后端的我想问问api.js里面的地址是自己的还是固定的,我只是写来试试,给我写后端的那位仁兄没跟上来[大哭]

【回复】后端用的node.js,如果你没写过,可以直接拿走我的文件来用。真实场景中,会有后台接口给你的。
一之条京鱼:
请问up,我是一名大四即将毕业的学生,想毕业后做小程序开发,自己只有web开发经验,该怎样入门,学些什么[微笑]

【回复】回复 @前端-刘加 :今年估计能考上研究生,继续呆在学校还是轻松呀^_^
【回复】回复 @一之条京鱼 :从事前端的话,面试的时候,单独问小程序的也有但是不多,前端框架还是会一些的。例如Vue和React。随着项目越来越大,原生js维护越来越麻烦。但是用框架就容易一些。毕竟项目是需要迭代的,不是写完就再也不用管了。
【回复】回复 @前端-刘加 :up主,请问小程序前端目前就业情况怎么样,另外一定要学框架吗(比如iview+vue nodejs之类的),原生js不好吗还有就是码农的生活是不是真的很累

编程 微信 小程序 微信小程序 Nodejs

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!