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
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
|
|
}
|