OpenID, you must first log out. p?>"; return; } if ($GET{'openid.mode'}) { my $csr = LJ::OpenID::consumer(\%GET); if (my $setup = $csr->user_setup_url) { return BML::redirect($setup); } my $vident = eval { $csr->verified_identity; }; return $err->($csr->err) unless $vident; my $url = $vident->url; return $err->("Invalid characters in identity URL.") if $url =~ /[\<\>\s]/; my $u = LJ::User::load_identity_user("O", $url, $vident); return $err->("Couldn't vivify your account (but we verified that you're " . LJ::ehtml($url) . ")") unless $u; my $sess_opts = { 'exptype' => 'short', 'ipfixed' => 0, }; my $etime = 0; if ($POST{'expire'} eq "never") { $etime = time()+60*60*24*60; $sess_opts->{'exptype'} = "long"; } $u->make_login_session($sess_opts->{'exptype'}, $sess_opts->{'ipfixed'}); LJ::set_remote($u); return BML::redirect("$LJ::SITEROOT/login.bml"); } if (LJ::did_post()) { my $csr = LJ::OpenID::consumer(); my $url = $POST{'openid_url'}; return $err->("Invalid characters in identity URL.") if $url =~ /[\<\>\s]/; my $tried_local_ref = LJ::OpenID::blocked_hosts($csr); my $claimed_id = $csr->claimed_identity($url); unless ($claimed_id) { return $err->("You can't use a LiveJournal OpenID account on LiveJournal — ". "just go login with your actual LJ.Rossia.org account.") if $tried_local_ref; return $err->($csr->err); } my $check_url = $claimed_id->check_url( return_to => "$LJ::SITEROOT/openid/login.bml", trust_root => "$LJ::SITEROOT/", delayed_return => 1, ); return BML::redirect($check_url); } return undef; } _code?>1 _info?> body=> page?>