Browse Source

授权登录绑定

yuxingxing 2 years ago
parent
commit
bf1d6271ca
3 changed files with 69 additions and 9 deletions
  1. 8 0
      api/home.js
  2. 4 1
      pages/users/register/index.vue
  3. 57 8
      pages/users/wechat_login/index.vue

+ 8 - 0
api/home.js

@@ -150,3 +150,11 @@ export function postUserRegister(data) {
 		noAuth: true
 	});
 }
+
+// 微信授权登录
+export function postLoginAuth(data) {
+	let url = "?code="+data.code+"&getPhoneNumberCode="+data.getPhoneNumberCode
+	return request.post("v1/login/wx-auth"+url,data,{
+		noAuth: true
+	});
+}

+ 4 - 1
pages/users/register/index.vue

@@ -194,8 +194,11 @@ export default {
 			}
 		}
 	},
-	onLoad() {
+	onLoad(options) {
 		let self = this
+		if(options.account){
+			self.account = options.account
+		}
 		uni.getSystemInfo({
 			success: (res) => {
 				if (res.platform.toLowerCase() == 'ios' && this.getSystem(res.system)) {

+ 57 - 8
pages/users/wechat_login/index.vue

@@ -21,8 +21,13 @@
 				<button hover-class="none" @click="wechatLogin" class="bg-green btn1">{{ $t(`微信登录`) }}</button>
 				<!-- #endif -->
 				<!-- #ifdef MP -->
-				<button v-if="canUseGetUserProfile && code" hover-class="none" @tap="getUserProfile"
-					class="bg-green btn1">{{ $t(`微信用户一键登录`) }}</button>
+				<!-- <button v-if="canUseGetUserProfile && code" hover-class="none" @tap="getUserProfile"
+					class="bg-green btn1">{{ $t(`微信用户一键登录`) }}</button> -->
+				<!-- <button v-if="canUseGetUserProfile && code" hover-class="none" 
+				open-type="getPhoneNumber" @getphonenumber="getphonenumber"
+					class="bg-green btn1">{{ $t(`微信用户一键登录`) }}</button> -->
+				<button v-if="canUseGetUserProfile && code" open-type="getPhoneNumber" hover-class="none"
+				@getphonenumber="getPhoneCode" class="bg-green btn1">{{ $t(`微信用户一键登录`) }}</button>
 				<button v-else hover-class="none" open-type="getUserInfo" @getuserinfo="setUserInfo"
 					class="bg-green btn1">{{ $t(`微信用户一键登录`) }}</button>
 				<!-- #endif -->
@@ -60,6 +65,9 @@ import {
 import {
 	getUserInfo
 } from '@/api/user.js';
+import {
+	postLoginAuth
+} from '@/api/home.js';
 import Routine from '@/libs/routine';
 import wechat from '@/libs/wechat';
 import colors from '@/mixins/color.js';
@@ -177,6 +185,45 @@ export default {
 				this.isPhoneBox = false;
 			}
 		},
+		getPhoneCode (e) {
+			console.log(e.detail.code)
+			uni.showLoading({
+				title: this.$t(`正在登录中`)
+			});
+			postLoginAuth({
+				getPhoneNumberCode: e.detail.code,
+				// iv: iv,
+				code: this.code,
+				// spread_spid: app.globalData.spid,
+				// spread_code: app.globalData.code
+			})
+				.then(res => {
+					console.log(res);
+					if(res.code == 200){
+						this.$store.commit('LOGIN', {
+						token: res.data.access_token,
+						time: res.data.expires_in
+					});
+					this.$store.commit('OPENID',res.data.openId);
+					this.getUserInfo();
+					}else {
+						uni.showToast({
+						title: "手机号暂未注册,即将跳转注册界面",
+						icon: 'none',
+						duration: 2000
+					});
+					setTimeout(() => {
+						// 自动登录失败时,跳转用户注册
+						uni.navigateTo({
+							url: '/pages/users/register/index?account='+res.data.username
+						})
+					}, 2000);
+					}
+				})
+				.catch(res => {
+					uni.hideLoading();
+				});
+		},
 		// #ifdef MP
 		// 小程序获取手机号码
 		getphonenumber(e) {
@@ -194,12 +241,14 @@ export default {
 		},
 		// 小程序获取手机号码回调
 		getUserPhoneNumber(encryptedData, iv, code) {
-			getUserPhone({
-				encryptedData: encryptedData,
-				iv: iv,
-				code: code,
-				spread_spid: app.globalData.spid,
-				spread_code: app.globalData.code
+			console.log(this.code);
+			console.log(code);
+			postLoginAuth({
+				getPhoneNumberCode: code,
+				// iv: iv,
+				code: this.code,
+				// spread_spid: app.globalData.spid,
+				// spread_code: app.globalData.code
 			})
 				.then(res => {
 					let time = res.data.expires_time - this.$Cache.time();