make ctx.login yieldable

Ref #8