Generate tokens client-side