feat: Add oauth middleware