async function authorizeUser () {
  const oauthOpen = promisify(open)

  const STATE = shortid.generate()
  const authUrl = 'https://github.com/login/oauth/authorize'
    .concat('?client_id=').concat(CLIENT_ID)
    .concat('&redirect_uri=').concat(REDIRECT_URL)
    .concat('&state=').concat(STATE)
    .concat('&scope=').concat(SCOPE)

  try {
    let resp = await oauthOpen(authUrl)

    if (resp.state === STATE) {
      return await _getAccessToken(resp.code)
    } else {
      console.error('The states do not match, this request could be compromised')
      return false
    }
  } catch (e) {
    console.error(e)
    return false
  }
}
Displays the login with GitHub screen to the user (as a popup or new tab),
if everything ok, closes the login screen and retrieves an authentication token for the logged user.

If something goes wrong in the process returns false.

@return {string|false} : Returns the authentication token or false if something goes wrong