       }, opts
 
   loginAnon: =>
-    @fetch config.API_URL + '/demo/users/me',
+    @netox.fetch config.API_URL + '/demo/users/me',
       method: 'POST'
       isIdempotent: true
-    .then (user) =>
-      @accessTokenStreams.onNext Rx.Observable.just user.accessToken
-      return user

      cookies[config.AUTH_COOKIE] = accessToken
      cookieSubject.onNext \
        _.defaults cookies, cookieSubject.getValue()

  stream: (url, opts) =>
    @accessTokens


    @accessTokenStreams = new Rx.ReplaySubject(1)
    @accessTokenStreams.onNext Rx.Observable.defer =>
      if initialAuthPromise?
        return initialAuthPromise

      cookieAccessToken = cookieSubject.getValue()[config.AUTH_COOKIE]

      return initialAuthPromise = (if cookieAccessToken?
        @netox.stream config.API_URL + '/demo/users/me',
          headers:
            Authorization: "Token #{cookieAccessToken}"
        .take(1).toPromise()
        .catch =>
          @loginAnon()
      else
        @loginAnon()
      ).then ({accessToken}) ->
        accessToken

    @accessTokens = @accessTokenStreams.switch()
    .doOnNext (accessToken) ->
