# HG changeset patch # User Adam Chlipala # Date 1293402967 18000 # Node ID 443f27cd1572971c1ebd349d4f210cd7312a4b10 # Parent 2d409aff8800ba012e9add679ee6c7a8f7b9f5ab Detecting cancellation diff -r 2d409aff8800 -r 443f27cd1572 src/ur/openid.ur --- a/src/ur/openid.ur Sun Dec 26 17:19:52 2010 -0500 +++ b/src/ur/openid.ur Sun Dec 26 17:36:07 2010 -0500 @@ -52,9 +52,16 @@ case OpenidFfi.getOutput os "openid.error" of Some v => error Authentication failed: {[v]} | None => - case OpenidFfi.getOutput os "openid.identity" of - None => error Missing identity in OP response - | Some v => return Identity: {[v]} + case OpenidFfi.getOutput os "openid.mode" of + None => error No openid.mode in response + | Some mode => + case mode of + "cancel" => error You canceled the authentication! + | "id_res" => + (case OpenidFfi.getOutput os "openid.identity" of + None => error Missing identity in OP response + | Some v => return Identity: {[v]}) + | _ => error Unexpected openid.mode: {[mode]} fun authenticate id = dy <- discover id;