|
@@ -1,5 +1,5 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <view v-show="code" class="container">
|
|
|
|
|
|
|
+ <view class="container">
|
|
|
<view class="wechatapp">
|
|
<view class="wechatapp">
|
|
|
<view class="header">
|
|
<view class="header">
|
|
|
<open-data class="avatar" type="userAvatarUrl"></open-data>
|
|
<open-data class="avatar" type="userAvatarUrl"></open-data>
|
|
@@ -20,6 +20,8 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
|
|
+ import store from '@/store'
|
|
|
|
|
+
|
|
|
export default {
|
|
export default {
|
|
|
|
|
|
|
|
data() {
|
|
data() {
|
|
@@ -32,7 +34,7 @@
|
|
|
|
|
|
|
|
created() {
|
|
created() {
|
|
|
// 获取code
|
|
// 获取code
|
|
|
- this.getCode()
|
|
|
|
|
|
|
+ // this.getCode()
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
methods: {
|
|
methods: {
|
|
@@ -40,27 +42,16 @@
|
|
|
// 获取code
|
|
// 获取code
|
|
|
// https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html
|
|
// https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html
|
|
|
getCode() {
|
|
getCode() {
|
|
|
- uni.login({
|
|
|
|
|
- provider: 'weixin',
|
|
|
|
|
- success: res => {
|
|
|
|
|
- this.code = res.code
|
|
|
|
|
- console.log(res)
|
|
|
|
|
- }
|
|
|
|
|
- })
|
|
|
|
|
- },
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * 授权登录(旧版弃用)
|
|
|
|
|
- */
|
|
|
|
|
- getUserInfo(e) {
|
|
|
|
|
- const app = this
|
|
|
|
|
- if (e.detail.errMsg === 'getUserInfo:ok') {
|
|
|
|
|
- app.$emit('success', {
|
|
|
|
|
- oauth: 'MP-WEIXIN', // 第三方登录类型: MP-WEIXIN
|
|
|
|
|
- code: app.code, // 微信登录的code, 用于换取openid
|
|
|
|
|
- userInfo: JSON.parse(e.detail.rawData) // 微信用户信息
|
|
|
|
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
|
|
+ uni.login({
|
|
|
|
|
+ provider: 'weixin',
|
|
|
|
|
+ success: res => {
|
|
|
|
|
+ console.log('code', res.code)
|
|
|
|
|
+ resolve(res.code)
|
|
|
|
|
+ },
|
|
|
|
|
+ fail: reject
|
|
|
})
|
|
})
|
|
|
- }
|
|
|
|
|
|
|
+ })
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
// 获取微信用户信息(新版)
|
|
// 获取微信用户信息(新版)
|
|
@@ -72,11 +63,8 @@
|
|
|
success({ userInfo }) {
|
|
success({ userInfo }) {
|
|
|
console.log('用户同意了授权')
|
|
console.log('用户同意了授权')
|
|
|
console.log('userInfo:', userInfo)
|
|
console.log('userInfo:', userInfo)
|
|
|
- app.$emit('success', {
|
|
|
|
|
- oauth: 'MP-WEIXIN', // 第三方登录类型: MP-WEIXIN
|
|
|
|
|
- code: app.code, // 微信登录的code, 用于换取openid
|
|
|
|
|
- userInfo // 微信用户信息
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ // 授权成功事件
|
|
|
|
|
+ app.onAuthSuccess(userInfo)
|
|
|
},
|
|
},
|
|
|
fail() {
|
|
fail() {
|
|
|
console.log('用户拒绝了授权')
|
|
console.log('用户拒绝了授权')
|
|
@@ -84,6 +72,53 @@
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
|
|
+ // 授权成功事件
|
|
|
|
|
+ // 这里分为两个逻辑:
|
|
|
|
|
+ // 1.将code和userInfo提交到后端,如果存在该用户 则实现自动登录,无需再填写手机号
|
|
|
|
|
+ // 2.如果不存在该用户, 则显示注册页面, 需填写手机号
|
|
|
|
|
+ async onAuthSuccess(userInfo) {
|
|
|
|
|
+ const app = this
|
|
|
|
|
+ // 提交到后端
|
|
|
|
|
+ store.dispatch('MpWxLogin', { code: await app.getCode(), userInfo })
|
|
|
|
|
+ .then(result => {
|
|
|
|
|
+ // 显示登录成功
|
|
|
|
|
+ app.$toast(result.message)
|
|
|
|
|
+ // 跳转回原页面
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ app.onNavigateBack()
|
|
|
|
|
+ }, 2000)
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(() => {
|
|
|
|
|
+ // 将oauth提交给父级
|
|
|
|
|
+ app.onEmitSuccess(userInfo)
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ // 将oauth提交给父级
|
|
|
|
|
+ // 这里要重新获取code, 因为上一次获取的code不能复用(会报错)
|
|
|
|
|
+ async onEmitSuccess(userInfo) {
|
|
|
|
|
+ const app = this
|
|
|
|
|
+ app.$emit('success', {
|
|
|
|
|
+ oauth: 'MP-WEIXIN', // 第三方登录类型: MP-WEIXIN
|
|
|
|
|
+ code: await app.getCode(), // 微信登录的code, 用于换取openid
|
|
|
|
|
+ userInfo // 微信用户信息
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ // /**
|
|
|
|
|
+ // * 授权登录(旧版弃用)
|
|
|
|
|
+ // */
|
|
|
|
|
+ // getUserInfo(e) {
|
|
|
|
|
+ // const app = this
|
|
|
|
|
+ // if (e.detail.errMsg === 'getUserInfo:ok') {
|
|
|
|
|
+ // app.$emit('success', {
|
|
|
|
|
+ // oauth: 'MP-WEIXIN', // 第三方登录类型: MP-WEIXIN
|
|
|
|
|
+ // code: app.code, // 微信登录的code, 用于换取openid
|
|
|
|
|
+ // userInfo: JSON.parse(e.detail.rawData) // 微信用户信息
|
|
|
|
|
+ // })
|
|
|
|
|
+ // }
|
|
|
|
|
+ // },
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 暂不登录
|
|
* 暂不登录
|
|
|
*/
|
|
*/
|