Commit 1cc32d85 authored by 王能飞's avatar 王能飞

Merge branch 'c_client_taro-pack' into 'c_client_taro'

授权优化

See merge request !51
parents 4321834f 7d71d83f
......@@ -42,5 +42,9 @@ export default {
version: '*',
provider: '3000000026642582'
}
},
memberBenefit: {
version: '*',
provider: '3000000043103783'
}
}
}
\ No newline at end of file
......@@ -17,7 +17,7 @@ Component({
this.postMessage(data.type, data)
}
},
didUnMount() {
didUnmount() {
// 页面被关闭
this.main && this.main.destroy();
},
......
import { useEffect, useRef, useState } from 'react'
import Taro, { useDidShow, showToast } from '@tarojs/taro'
import { getSetting, openSetting, authorize, getAuthUserInfo } from 'tbcc-sdk-ts/lib/core/tb'
import { useThrottle } from '@/hooks/useThrottle'
// 授权
export function useAuth(authSuccess = () => {}) {
const [visible, setVisible ] = useState(false)
const goToOpenSetting = useRef(false)
// 授权信息调用是否完成 防止用户调用了授权API 未弹出再次点击
const completeHandle = useRef(true)
// 获取授权信息
const onHandleSetting = async () => {
const onHandleSetting = useThrottle(async () => {
const res = await getSetting()
if(!res.authSetting?.userInfo) {
const authResult = await authorize().catch(err => {
setVisible(true)
showToast({ title: '请先授权,授权成功后才可参与活动' })
completeHandle.current = true
})
if(authResult) {
authUserInfo()
......@@ -20,14 +24,16 @@ export function useAuth(authSuccess = () => {}) {
}else {
authUserInfo()
}
}
})
// 打开授权设置
const onOpenSetting = async () => {
const onOpenSetting = useThrottle(async () => {
if(!completeHandle.current) return;
goToOpenSetting.current = true
showToast({ title: '打开授权开关,授权成功后才可参与活动', duration: 1000, success: () => openSetting() })
}
})
// 获取用户授权信息
const authUserInfo = async() => {
completeHandle.current = true
const info = await getAuthUserInfo()
if (info) {
authSuccess(info)
......@@ -42,6 +48,7 @@ export function useAuth(authSuccess = () => {}) {
if(goToOpenSetting.current) {
// 重新授权
onHandleSetting()
completeHandle.current = false
goToOpenSetting.current = false
}
})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment