NAME¶
Jifty::LetMe - A way to expose single-link URLs to your applications
new¶
Create a new "LetMe" authentication object; it takes no parameters. It
calls "_init" to do any initialization.
A LetMe is a way to provide a one-time-use URL for a particular purpose. All
LetMe objects give you a way to validate a user's identity and to allow them a
very small set of possible actions or page-access permissions.
For example, you can put a LetMe URL in an email to a new user, so that when
they click on the URL you know that their email address is valid.
_init @_¶
Called with whatever "new" was called with. By default, does nothing.
user¶
Contains an app-specific "user" object.
validated_current_user¶
If the user has presented a valid token, returns an (app-specific subclass of
the) Jifty::CurrentUser object for the user who has the email address in
$self->email. If no user has that email address, returns undef.
_user_from_email ADDRESS¶
Returns an (app-specific subclass of the) Jifty::CurrentUser object for the user
who has the email address
ADDRESS.
generate_checksum¶
Returns an authentication checksum for the current combination of:
user
path
arguments
until
generate_koremutake_checksum¶
Generate a slightly more pronounceable version of the checksum using
String::Koremutake. Due to hex -> integer limitations, this is imprecise
and may vary depending on the platform it is used on; as such, it is
deprecated.
from_token PATH¶
Parse a string of the form
mylongusername@example.com/update_task/23/until/20050101/bekidrikufryvagygefuba
into
email => mylongusername@example.com,
path => 'update_task/23'
until => 20050101,
checksum_provided => bekidrikufryvagygefuba
as_token¶
Returns the "letme" token for this set of credentials. This should
round trip cleanly with from_token
as_encoded_token¶
A variant of as_token that encodes the user's email address suitably for passing
in a URL
as_url¶
Returns the fully qualified URL for this LetMe. It's composed of
Jifty->web->url, "base_path" and "as_encoded_token"
base_path¶
By default, all "LetMe" actions live at URLs under '/let' inside your
application. Override this subroutine to change that.
By default, it returns '/let/'
validate¶
Returns true if the credentials the user presented validate OK. Returns false
otherwise.
_correct_checksum_provided¶
Returns true if the checksum the user provided is correct. Doesn't actually do
much input checking. You want to call "validate"