---
name: "Jifty::LetMe"
section: "3pm"
platform: "linux"
package: "libjifty-perl"
version: "1.10518+dfsg-2"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/Jifty::LetMe"
---

# Jifty::LetMe(3pm)

A way to expose single-link URLs to your applications

## 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"
