diff --git a/pages/index/login.vue b/pages/index/login.vue
index f3298b2..3ef6f52 100644
--- a/pages/index/login.vue
+++ b/pages/index/login.vue
@@ -1,32 +1,29 @@
+
-
+
diff --git a/sheep/platform/provider/wechat/officialAccount.js b/sheep/platform/provider/wechat/officialAccount.js
index cac051b..1e8064c 100644
--- a/sheep/platform/provider/wechat/officialAccount.js
+++ b/sheep/platform/provider/wechat/officialAccount.js
@@ -23,8 +23,9 @@ async function login(code = '', state = '') {
// 情况二:有 code 时,使用 code 去自动登录
} else {
// 解密 code 发起登陆
- const loginResult = await loginByCode(code, state);
+ const loginResult = await AuthUtil.socialLogin(socialType, code, state);
if (loginResult.code === 0) {
+ // TODO 芋艿:shareLog
setOpenid(loginResult.data.openid);
return loginResult;
}
@@ -33,8 +34,8 @@ async function login(code = '', state = '') {
}
// 微信公众号绑定
-async function bind(code = '') {
- // 获取绑定地址
+async function bind(code = '', state = '') {
+ // 情况一:没有 code 时,去获取 code
if (code === '') {
const loginUrl = await getLoginUrl('bind');
if (loginUrl) {
@@ -42,9 +43,10 @@ async function bind(code = '') {
window.location = loginUrl;
}
} else {
- // 解密code发起登陆
- const loginResult = await bindByCode(code);
- if (loginResult.error === 0) {
+ // 情况二:有 code 时,使用 code 去自动绑定
+ const loginResult = await SocialApi.socialBind(socialType, code, state);
+ if (loginResult.code === 0) {
+ setOpenid(loginResult.data);
return loginResult;
}
}
@@ -59,7 +61,8 @@ const unbind = async (openid) => {
// 获取公众号登陆地址
async function getLoginUrl(event = 'login') {
- const page = getRootUrl() + 'pages/index/login';
+ const page = getRootUrl() + 'pages/index/login'
+ + '?event=' + event; // event 目的,区分是 login 还是 bind
const { code, data } = await AuthUtil.socialAuthRedirect(socialType, page);
if (code !== 0) {
return undefined;
@@ -67,36 +70,6 @@ async function getLoginUrl(event = 'login') {
return data;
}
-// 此处使用前端发送code在后端解密,防止用户在后端过长时间停留
-function loginByCode(code, state) {
- if (true) {
- return AuthUtil.socialLogin(socialType, code, state);
- }
- // TODO 芋艿:shareLog
- return third.wechat.login({
- platform: 'officialAccount',
- shareInfo: uni.getStorageSync('shareLog') || {},
- payload: encodeURIComponent(
- JSON.stringify({
- code,
- }),
- ),
- });
-}
-
-// 此处使用前端发送code在后端解密,防止用户在后端过长时间停留
-function bindByCode(code) {
- debugger
- return third.wechat.bind({
- platform: 'officialAccount',
- payload: encodeURIComponent(
- JSON.stringify({
- code,
- }),
- ),
- });
-}
-
// 设置 openid 到本地存储,目前只有 pay 支付时会使用
function setOpenid(openid) {
uni.setStorageSync('openid', openid);