Scroll to navigation

HTML::FormFu::Element::RequestToken(3pm) User Contributed Perl Documentation HTML::FormFu::Element::RequestToken(3pm)

NAME

HTML::FormFu::Element::RequestToken

VERSION

version 2.04

SYNOPSIS

  my $e = $form->element( { type => 'Token' } );

  my $p = $form->element( { plugin => 'Token' } );

DESCRIPTION

This field can prevent CSRF attacks. It contains a random token. After submission the token is checked with the token which is stored in the session of the current user. See "request_token_enable" in Catalyst::Controller::HTML::FormFu for a convenient way how to use it.

NAME

HTML::FormFu::Element::RequestToken - Hidden text field which contains a unique token

ATTRIBUTES

context

Value of the stash key for the Catalyst context object ($c). Defaults to "context".

expiration_time

Time to life for a token in seconds. Defaults to 3600.

session_key

Session key which is used to store the tokens. Defaults to "__token".

limit

Limit the number of tokens which are kept in the session. Defaults to 20.

constraints

Defaults to HTML::FormFu::Constraint::RequestToken and HTML::FormFu::Constraint::Required.

message

Set the error message.

METHODS

expire_token

This method looks in the session for expired tokens and removes them.

get_token

Generates a new token and stores it in the stash.

verify_token

Checks whether a given token is already in the session. Returns 1 if it exists, 0 otherwise.

SEE ALSO

Catalyst::Controller::HTML::FormFu, HTML::FormFu::Plugin::RequestToken, HTML::FormFu::Constraint::RequestToken

HTML::FormFu

AUTHOR

Moritz Onken, "onken@houseofdesign.de"

LICENSE

This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHORS

  • Carl Franks <cpan@fireartist.com>
  • Nigel Metheringham <nigelm@cpan.org>
  • Dean Hamstead <dean@bytefoundry.com.au>

COPYRIGHT AND LICENSE

This software is copyright (c) 2007-2018 by Carl Franks / Nigel Metheringham / Dean Hamstead.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

2018-05-15 perl v5.26.2