logout.js 876 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. const {
  2. dbCmd,
  3. LOG_TYPE,
  4. deviceCollection,
  5. userCollection
  6. } = require('../../common/constants')
  7. async function logout () {
  8. const {
  9. deviceId
  10. } = this.getUniversalClientInfo()
  11. const uniIdToken = this.getUniversalUniIdToken()
  12. const payload = await this.uniIdCommon.checkToken(
  13. uniIdToken,
  14. {
  15. autoRefresh: false
  16. }
  17. )
  18. if (payload.errCode) {
  19. throw payload
  20. }
  21. const uid = payload.uid
  22. // 删除token
  23. await userCollection.doc(uid).update({
  24. token: dbCmd.pull(uniIdToken)
  25. })
  26. // 仅当device表的device_id和user_id均对应时才进行更新
  27. await deviceCollection.where({
  28. device_id: deviceId,
  29. user_id: uid
  30. }).update({
  31. token_expired: 0
  32. })
  33. await this.middleware.uniIdLog({
  34. data: {
  35. user_id: uid
  36. },
  37. type: LOG_TYPE.LOGOUT
  38. })
  39. return {
  40. errCode: 0
  41. }
  42. }
  43. module.exports = {
  44. logout
  45. }