authmanager.js 1.1 KB

123456789101112131415161718192021222324252627282930
  1. const ConfigManager = require('./configmanager.js')
  2. const Mojang = require('./mojang.js')
  3. exports.addAccount = async function(username, password){
  4. const session = await Mojang.authenticate(username, password, ConfigManager.getClientToken)
  5. const ret = ConfigManager.addAuthAccount(session.selectedProfile.id, session.accessToken, username, session.selectedProfile.name)
  6. ConfigManager.save()
  7. return ret
  8. }
  9. exports.validateSelected = async function(){
  10. const current = ConfigManager.getSelectedAccount()
  11. const isValid = await Mojang.validate(current.accessToken, ConfigManager.getClientToken())
  12. console.log(isValid)
  13. if(!isValid){
  14. try {
  15. const session = await Mojang.refresh(current.accessToken, ConfigManager.getClientToken())
  16. console.log('ses', session)
  17. ConfigManager.updateAuthAccount(current.uuid, session.accessToken)
  18. ConfigManager.save()
  19. } catch(err) {
  20. if(err && err.message === 'ForbiddenOperationException'){
  21. return false
  22. }
  23. }
  24. return true
  25. } else {
  26. return true
  27. }
  28. }