Retrieving user details

Currently I retrieve a logged in user ( the browser has his session cookie ) details like this:

          $.ajax({
            url: server_url + "/rest/api/2/user?username=" + JSON.parse(auth_body).username,
            type: "GET",
            dataType: 'json',
            success: function (result) {
              ...
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
              ...
            },
            async: true
          }); 

My question is: will this always work? Will the logged in user always be able to retrieve his own user details via the api, or does he need to have ‘browse user permissions’ set to true?

My second question: is the returned user ID globally unique? Can I assume no two users anywhere will have the same user ID in jira server or cloud ?