NAME
Plack::Middleware::Auth::AccessToken - Secret access token (aka OAuth Bearer) authentification
VERSION
version 0.11
SYNOPSIS
use Plack::Middleware::Auth::AccessToken;
use Plack::Builder;
my $app = sub { ... };
builder {
enable "Auth::AccessToken",
authenticator => \&check_token;
$app;
};
sub check_token {
my $token = shift;
return $token eq 'a02655d46dd0f2160529acaccd4dbf979c6e6e50';
}
DESCRIPTION
Plack::Middleware::Auth::AccessToken is authentification handler for Plack that uses a secret access token. Access tokens are also known as OAuth Bearer tokens. Tokens can be provided both in a HTTP request header or as query parameter:
https://example.org/api
Authorization: bearer ACCESS_TOKEN
https://example.org/api?access_token=ACCESS_TOKEN
The former is recommended because query parameters may show up on log files.
This middleware checks the access token via a callback function and returns an error document with HTTP code 401 on failure.
CONFIGURATION
- authenticator
-
A required callback function that takes an access token and returns whether the token is valid. The PSGI environment is passed as second argument, but making use of it should be bad practice.
- token_type
-
Used to compare the authorization header. For instance the value 'token' will make the middleware look for a header such as:
Authorization: token ACCESS_TOKEN
The token type is case-insensitive and set to 'bearer' by default.
- reject_http
-
An optional callback function that takes an access token that has been sent unencryptedly over HTTP. If this parameter has been set, a HTTP request is rejected without first consulting the authentificator. The callback function can be used to mark the access token as invalid.
SEE ALSO
See Plack::Middleware::Auth::OAuth2::ProtectedResource and Plack::Middleware::OAuth for modules that take more care to implement OAuth.
AUTHOR
Jakob Voß <voss@gbv.de>
COPYRIGHT AND LICENSE
This software is copyright (c) 2013 by Jakob Voß.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.