Client: add authenticate(), request_code()