Net::XMPP2::Ext::Registration - Handles all tasks of in band registration
my $con = Net::XMPP2::Connection->new (...);
$con->reg_cb (stream_pre_authentication => sub {
my ($con) = @_;
my $reg = Net::XMPP2::Ext::Registration->new (connection => $con);
$reg->send_registration_request (sub {
my ($reg, $form, $error) = @_;
if ($error) {
# error handling
} else {
my $af = $form->try_fillout_registration ("tester", "secret");
$reg->submit_form ($af, sub {
my ($reg, $ok, $error, $form) = @_;
if ($ok) { # registered successfully!
$con->authenticate
} else { # error
if ($form) { # we got an alternative form!
# fill it out and submit it with C<submit_form> again
}
}
});
}
});
0
});
This module handles all tasks of in band registration that are possible and
specified by XEP-0077. It's mainly a helper class that eases some tasks such
as submitting and retrieving a form.
- new (%args)
- This is the constructor for a registration object.
- connection
- This must be a Net::XMPP2::Connection (or some other subclass of that)
object.
This argument is required.
- send_registration_request ($cb)
- This method sends a register form request. $cb
will be called when either the form arrived or an error occured.
The first argument of $cb is always
$self. If the form arrived the second argument
of $cb will be a Net::XMPP2::Ext::RegisterForm
object. If an error occured the second argument will be undef and the
third argument will be a Net::XMPP2::Error::Register object.
For hints how Net::XMPP2::Ext::RegisterForm should be filled
out look in XEP-0077. Either you have legacy form fields, out of band
data or a data form.
See also try_fillout_registration in
Net::XMPP2::Ext::RegisterForm.
- send_unregistration_request ($cb)
- This method sends an unregistration request.
For description of the semantics of the callback in
$cb plase look in the description of the
"submit_form" method below.
- send_password_change_request ($username, $password,
$cb)
- This method sends a password change request for the user
$username with the new password
$password.
For description of the semantics of the callback in
$cb plase look in the description of the
"submit_form" method below.
- submit_form ($form, $cb)
- This method submits the $form which should be of
type Net::XMPP2::Ext::RegisterForm and should be an answer form.
$con is the connection on which to
send this form.
$cb is the callback that will be
called once the form has been submitted and either an error or success
was received. The first argument to the callback will be the
Net::XMPP2::Ext::Registration object, the second will be a boolean value
that is true when the form was successfully transmitted and everything
is fine. If the second argument is false then the third argument is a
Net::XMPP2::Error::Register object. If the error contained a data form
which is required to successfully make the request then the fourth
argument will be a Net::XMPP2::Ext::RegisterForm which you should fill
out and send again with
"submit_form".
For the semantics of such an error form see also XEP-0077.
Robin Redeker, "<elmex at ta-sa.org>",
JID: "<elmex at jabber.org>"
Copyright 2007 Robin Redeker, all rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.