个人信息:增加读取社交信息的接口

pull/32/MERGE
YunaiV 2023-12-23 22:04:11 +08:00
parent f968397ad8
commit 4d9343d2db
6 changed files with 121 additions and 49 deletions

View File

@ -127,9 +127,9 @@
</view>
</uni-forms>
<!-- 当前社交平台的绑定关系只处理 wechat 微信场景 -->
<view v-if="sheep.$platform.name !== 'H5'">
<view class="title-box ss-p-l-30">第三方账号绑定</view>
<view class="account-list ss-flex ss-row-between">
<view v-if="'WechatOfficialAccount' === sheep.$platform.name" class="ss-flex ss-col-center">
<image
@ -153,16 +153,16 @@
<text class="list-name">微信开放平台</text>
</view>
<view class="ss-flex ss-col-center">
<view class="info ss-flex ss-col-center" v-if="state.thirdOauthInfo">
<view class="info ss-flex ss-col-center" v-if="state.thirdInfo">
<image
class="avatar ss-m-r-20"
:src="sheep.$url.cdn(state.thirdOauthInfo.avatar)"
></image>
<text class="name">{{ state.thirdOauthInfo.nickname }}</text>
:src="sheep.$url.cdn(state.thirdInfo.avatar)"
/>
<text class="name">{{ state.thirdInfo.nickname }}</text>
</view>
<view class="bind-box ss-m-l-20">
<button
v-if="state.thirdOauthInfo"
v-if="state.thirdInfo.openid"
class="ss-reset-button relieve-btn"
@tap="unBindThirdOauth"
>
@ -193,7 +193,7 @@
const state = reactive({
model: {}, //
rules: {},
thirdOauthInfo: null,
thirdInfo: {}, //
});
const placeholderStyle = 'color:#BBBBBB;font-size:28rpx;line-height:normal';
@ -210,17 +210,17 @@
const userInfo = computed(() => sheep.$store('user').userInfo);
// TODO
//
function onChangeGender(e) {
state.model.sex = e.detail.value;
}
// TODO
//
const onChangeMobile = () => {
showAuthModal('changeMobile');
};
// TODO
//
function onChooseAvatar(e) {
const tempUrl = e.detail.avatarUrl || '';
uploadAvatar(tempUrl);
@ -258,7 +258,7 @@
}
}
// TODO
//
function unBindThirdOauth() {
uni.showModal({
title: '解绑提醒',
@ -266,11 +266,12 @@
cancelText: '再想想',
confirmText: '确定',
success: async function (res) {
if (res.confirm) {
const result = await sheep.$platform.useProvider('wechat').unbind();
if (result) {
getUserInfo();
}
if (!res.confirm) {
return;
}
const result = await sheep.$platform.useProvider('wechat').unbind(state.thirdInfo.openid);
if (result) {
await getUserInfo();
}
},
});
@ -294,14 +295,10 @@
const userInfo = await sheep.$store('user').getInfo();
state.model = clone(userInfo);
// TODO
//
if (sheep.$platform.name !== 'H5') {
return;
// ,,
let { data, error } = await sheep.$api.user.thirdOauthInfo();
if (error === 0) {
state.thirdOauthInfo = data;
}
const result = await sheep.$platform.useProvider('wechat').getInfo();
state.thirdInfo = result || {};
}
};

View File

@ -0,0 +1,54 @@
import request from '@/sheep/request';
const SocialApi = {
// 获得社交用户
getSocialUser: (type) => {
return request({
url: '/app-api/member/social-user/get',
method: 'GET',
params: {
type
},
custom: {
showLoading: false,
},
});
},
// 社交绑定
socialBind: (type, code, state) => {
return request({
url: '/app-api/member/social-user/bind',
method: 'POST',
data: {
type,
code,
state
},
custom: {
custom: {
showSuccess: true,
loadingMsg: '绑定中',
successMsg: '绑定成功',
},
},
});
},
// 社交绑定
socialUnbind: (type, openid) => {
return request({
url: '/app-api/member/social-user/unbind',
method: 'DELETE',
data: {
type,
openid
},
custom: {
showLoading: false,
loadingMsg: '解除绑定',
successMsg: '解绑成功',
},
});
},
};
export default SocialApi;

View File

@ -28,18 +28,6 @@ export default {
},
}),
// 解除绑定微信
unbind: (data) =>
request({
url: 'third/wechat/unbind',
method: 'POST',
data,
custom: {
showSuccess: true,
loadingMsg: '解除绑定',
},
}),
// 公众号授权
oauthLogin: (data) =>
request({

View File

@ -1,6 +1,6 @@
import third from '@/sheep/api/third';
import $store from '@/sheep/store';
import AuthUtil from '@/sheep/api/member/auth';
import SocialApi from '@/sheep/api/member/social';
const socialType = 34; // 社交类型 - 微信小程序
@ -83,11 +83,9 @@ const bind = () => {
};
// 微信小程序解除绑定
const unbind = async () => {
const { error } = await third.wechat.unbind({
platform: 'miniProgram',
});
return !error;
const unbind = async (openid) => {
const { code } = await SocialApi.socialUnbind(socialType, openid);
return code === 0;
};
// 小程序更新
@ -183,13 +181,22 @@ function setOpenid(openid) {
uni.setStorageSync('openid', openid);
}
// 获得社交信息
async function getInfo() {
const { code, data } = await SocialApi.getSocialUser(socialType);
if (code !== 0) {
return undefined;
}
return data;
}
export default {
load,
login,
bind,
unbind,
checkUpdate,
bindUserPhoneNumber,
mobileLogin,
getInfo,
subscribeMessage,
};

View File

@ -2,6 +2,7 @@ import third from '@/sheep/api/third';
import $wxsdk from '@/sheep/libs/sdk-h5-weixin';
import { getRootUrl } from '@/sheep/helper';
import AuthUtil from '@/sheep/api/member/auth';
import SocialApi from '@/sheep/api/member/social';
const socialType = 31; // 社交类型 - 微信公众号
@ -51,13 +52,10 @@ async function bind(code = '') {
}
// 微信公众号解除绑定
async function unbind() {
debugger
const { error } = await third.wechat.unbind({
platform: 'officialAccount',
});
return Promise.resolve(!error);
}
const unbind = async (openid) => {
const { code } = await SocialApi.socialUnbind(socialType, openid);
return code === 0;
};
// 获取公众号登陆地址
async function getLoginUrl(event = 'login') {
@ -104,10 +102,20 @@ function setOpenid(openid) {
uni.setStorageSync('openid', openid);
}
// 获得社交信息
async function getInfo() {
const { code, data } = await SocialApi.getSocialUser(socialType);
if (code !== 0) {
return undefined;
}
return data;
}
export default {
load,
login,
bind,
unbind,
getInfo,
jssdk: $wxsdk,
};

View File

@ -1,7 +1,9 @@
// 登录
import third from '@/sheep/api/third';
import SocialApi from '@/sheep/api/member/social';
// TODO 芋艿:等后面搞 App 再弄
const socialType = 32; // 社交类型 - 微信开放平台
const load = async () => {};
@ -37,7 +39,23 @@ const login = () => {
});
};
// 微信 App 解除绑定
const unbind = async (openid) => {
const { code } = await SocialApi.socialUnbind(socialType, openid);
return code === 0;
};
// 获得社交信息
async function getInfo() {
const { code, data } = await SocialApi.getSocialUser(socialType);
if (code !== 0) {
return undefined;
}
return data;
}
export default {
load,
login,
getInfo
};