authmanager.js 1.2 KB

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