You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
876 B
50 lines
876 B
1 year ago
|
const {
|
||
|
dbCmd,
|
||
|
LOG_TYPE,
|
||
|
deviceCollection,
|
||
|
userCollection
|
||
|
} = require('../../common/constants')
|
||
|
|
||
|
async function logout () {
|
||
|
const {
|
||
|
deviceId
|
||
|
} = this.getUniversalClientInfo()
|
||
|
const uniIdToken = this.getUniversalUniIdToken()
|
||
|
const payload = await this.uniIdCommon.checkToken(
|
||
|
uniIdToken,
|
||
|
{
|
||
|
autoRefresh: false
|
||
|
}
|
||
|
)
|
||
|
if (payload.errCode) {
|
||
|
throw payload
|
||
|
}
|
||
|
const uid = payload.uid
|
||
|
|
||
|
// 删除token
|
||
|
await userCollection.doc(uid).update({
|
||
|
token: dbCmd.pull(uniIdToken)
|
||
|
})
|
||
|
|
||
|
// 仅当device表的device_id和user_id均对应时才进行更新
|
||
|
await deviceCollection.where({
|
||
|
device_id: deviceId,
|
||
|
user_id: uid
|
||
|
}).update({
|
||
|
token_expired: 0
|
||
|
})
|
||
|
await this.middleware.uniIdLog({
|
||
|
data: {
|
||
|
user_id: uid
|
||
|
},
|
||
|
type: LOG_TYPE.LOGOUT
|
||
|
})
|
||
|
return {
|
||
|
errCode: 0
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = {
|
||
|
logout
|
||
|
}
|