Optical orthogonal codes (OOCs) are widely used as spreading codes in optical fiber networks. An (N, w, lambda(a), lambda(c))-OOC with size L is a family of L {0, 1}-sequences with length N, weight w, maximum autocorrelation lambda(a), and maximum cross correlation lambda(c). In this paper, we present two new constructions for OOCs with lambda(a) = lambda(c) = 1 which are asymptotically optimal with respect to the Johnson bound. We first construct an asymptotically optimal (Mp(n), M, 1, 1)-OOC with size (p(n) - 1)/M by using the structure of Z(pn), the ring of integers modulo p(n), where p is an odd prime with M vertical bar p - 1, and n is a positive integer. We then present another asymptotically optimal (Mp(1) ... p(k), M, 1, 1)-OOC with size (p(1) ... p(k) - 1)/M from a product of k finite fields, where p(i) is an odd prime and M is a positive integer such that M vertical bar p(i) - 1 for 1 <= i <= k. In particular, it is optimal in the case that k = 1 and (M - 1)(2) > p(1) - 1.