adam@19: style inputs adam@19: adam@19: structure U = OpenidUser.Make(struct adam@19: con cols = [Nam = string] adam@19: adam@19: val sessionLifetime = 3600 adam@19: val afterLogout = bless "/main" adam@19: val secureCookies = False adam@19: val association = Openid.Stateful {AssociationType = Openid.HMAC_SHA256, adam@19: AssociationSessionType = Openid.NoEncryption} adam@19: val realm = None adam@19: adam@19: val creationState = adam@19: n <- source ""; adam@19: return {Nam = n} adam@19: adam@19: fun render r = adam@19: Name: adam@19: adam@19: adam@19: fun tabulate r = adam@19: n <- signal r.Nam; adam@19: return {Nam = n} adam@19: adam@19: fun choose _ r = return r adam@19: adam@19: val formClass = inputs adam@19: end) adam@19: adam@19: fun wrap title body = adam@19: userStuff <- U.main wrap; adam@19: return adam@19: {[title]} adam@19: adam@19: {userStuff} adam@19: adam@19:

{[title]}

adam@19: adam@19: {body} adam@19:
adam@19: adam@19: fun main () = adam@19: whoami <- U.current; adam@19: wrap "Main page" (case whoami of adam@19: None => I don't think you're logged in. adam@19: | Some whoami => Apparently you are {[whoami]}!)