|
|
|
|
@ -107,6 +107,66 @@ const useAuthStore = create(devtools((set, get) => ({
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
parseLoginJson: (json) => {
|
|
|
|
|
const { setStorage } = usingStorage()
|
|
|
|
|
if (json.errcode === 0 && isNotEmpty(json.result.opisn)) {
|
|
|
|
|
const waiServer = json.result.whatsappinfo.length > 0 ? json.result.whatsappinfo[0].wai_server : ''
|
|
|
|
|
setStorage(WAI_SERVER_KEY, waiServer)
|
|
|
|
|
|
|
|
|
|
const parsedUser = {
|
|
|
|
|
userId: json.result.opisn,
|
|
|
|
|
userIdStr: json.result?.accountlist
|
|
|
|
|
.map((acc) => {
|
|
|
|
|
return acc.OPI_SN
|
|
|
|
|
})
|
|
|
|
|
.join(','),
|
|
|
|
|
emailList: json.result?.emaillist.map(item => {
|
|
|
|
|
return {
|
|
|
|
|
opi_sn: item.opi_sn,
|
|
|
|
|
mat_sn: item.mat_sn,
|
|
|
|
|
email: item.email,
|
|
|
|
|
default: item.Isdefaultemail == 1,
|
|
|
|
|
backup: item.Isbakemail == 1,
|
|
|
|
|
}
|
|
|
|
|
}),
|
|
|
|
|
whatsAppBusiness: json.result.whatsappinfo.length > 0 ? json.result.whatsappinfo[0].whatsapp_waba : '',
|
|
|
|
|
whatsAppNo: json.result.whatsappinfo.length > 0 ? json.result.whatsappinfo[0].whatsapp_wa : '',
|
|
|
|
|
accountName: json.result.opicode,
|
|
|
|
|
username: json.result.nick,
|
|
|
|
|
avatarUrl: json.result.avatarUrl,
|
|
|
|
|
mobile: '+' + json.result.stateCode + '-' + json.result.mobile,
|
|
|
|
|
email: json.result.email,
|
|
|
|
|
openId: json.result.openId,
|
|
|
|
|
accountList: json.result.accountlist,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return parsedUser
|
|
|
|
|
} else { return null }
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 钉钉免登后获取用户信息
|
|
|
|
|
loginByJSAuth: async (authCode) => {
|
|
|
|
|
const { saveUserSession, setLoginStatus } = get()
|
|
|
|
|
setLoginStatus(200)
|
|
|
|
|
|
|
|
|
|
const json = await fetchJSON(
|
|
|
|
|
'https://p9axztuwd7x8a7.mycht.cn/dingtalk/dingtalkwork/Getusers_auth_wa',
|
|
|
|
|
{ authCode },
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
const parsedUser = parseLoginJson(json)
|
|
|
|
|
|
|
|
|
|
if (parsedUser) {
|
|
|
|
|
set(() => ({
|
|
|
|
|
loginUser: parsedUser,
|
|
|
|
|
}))
|
|
|
|
|
saveUserSession()
|
|
|
|
|
setLoginStatus(302)
|
|
|
|
|
} else {
|
|
|
|
|
setLoginStatus(403)
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
getPrimaryEmail: () => {
|
|
|
|
|
const { loginUser } = get()
|
|
|
|
|
|
|
|
|
|
|