login-app-wx.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. export default{
  2. // #ifdef APP-PLUS
  3. methods: {
  4. /**
  5. * 微信App登录
  6. * "openId": "o0yywwGWxtBCvBuE8vH4Naof0cqU",
  7. * "nickName": "S .",
  8. * "gender": 1,
  9. * "city": "临沂",
  10. * "province": "山东",
  11. * "country": "中国",
  12. * "avatarUrl": "http://thirdwx.qlogo.cn/mmopen/vi_32/xqpCtHRBBmdlf201Fykhtx7P7JcicIbgV3Weic1oOvN6iaR3tEbuu74f2fkKQWXvzK3VDgNTZzgf0g8FqPvq8LCNQ/132",
  13. * "unionId": "oYqy4wmMcs78x9P-tsyMeM3MQ1PU"
  14. */
  15. loginByWxApp(userInfoData){
  16. if(!this.agreement){
  17. this.$util.msg('请阅读并同意用户服务及隐私协议');
  18. return;
  19. }
  20. this.$util.throttle(async ()=>{
  21. let [err, res] = await uni.login({
  22. provider: 'weixin'
  23. })
  24. if(err){
  25. console.log(err);
  26. return;
  27. }
  28. uni.getUserInfo({
  29. provider: 'weixin',
  30. success: async res=>{
  31. const response = await this.$request('user', 'loginByWeixin', {
  32. userInfo: res.userInfo,
  33. }, {
  34. showLoading: true
  35. });
  36. if(response.status === 0){
  37. this.$util.msg(response.msg);
  38. return;
  39. }
  40. if(response.hasBindMobile && response.data.token){
  41. this.loginSuccessCallBack({
  42. token: response.data.token,
  43. tokenExpired: response.data.tokenExpired
  44. });
  45. }else{
  46. this.navTo('/pages/auth/bindMobile?data='+JSON.stringify(response.data))
  47. }
  48. plus.oauth.getServices(oauthRes=>{
  49. oauthRes[0].logout(logoutRes => {
  50. console.log(logoutRes);
  51. }, error => {
  52. console.log(error);
  53. })
  54. })
  55. },
  56. fail(err) {
  57. console.log(err);
  58. }
  59. })
  60. })
  61. }
  62. }
  63. // #endif
  64. }