Catalyst-Authentication-Credential-Twitter
view release on metacpan or search on metacpan
README.mkdn view on Meta::CPAN
Will not be called by you directly, but will use the configuration you
provide (see above). Mandatory parameters are `consumer_key`, `consumer_secret` and
`callback_url`. Note that you can also include `twitter_consumer_key`, `twitter_consumer_secret`, and `twitter_callback_url` as variables in your Catalyst site configuration or yml file and you don't need to pass configuration parameters in your MyAp...
## authenticate\_twitter\_url( $c )
This method will return the authentication URL. Bounce your users there
before calling the `authentication` method.
## authenticate( )
Handles the authentication. Nothing more, nothing less. It returns
a [Catalyst::Authentication::User::Hash](https://metacpan.org/pod/Catalyst::Authentication::User::Hash) with the following keys
(all coming straight from Twitter).
- twitter\_user
- twitter\_user\_id
- twitter\_access\_token
- twitter\_access\_token\_secret
Your database must at least contain a column called "twitter\_user\_id"
in your main user table. If the other keys are present they will be
updated on login with Twitter's most up-to-date information for that
user.
## authenticate\_twitter( )
Only performs the twitter authentication. Returns a hashref containing
the user's information given by Twitter (see `authenticate()` above for
the lists of keys returned), or undef if the authentication failed.
## twitter\_user($c)
Contains the user's twitter information after a successful twitter
authentication via `authenticate_twitter()` or
`authenticate()`. Useful if, for example, you want to create users
on-the-fly:
```perl
sub twitter_callback :Path( 'twitter/callback' ) {
my ($self, $c) = @_;
my $twitter = $c->get_auth_realm('twitter')->credential;
my $user = $twitter->authenticate( $c );
# properly authenticated against twitter,
# user just doesn't exist yet
if ( !$user and $twitter->twitter_user($c) ) {
$user = $self->model->create_user( $twitter->twitter_user($c) );
}
# etc
}
```
# SEE ALSO
[Catalyst::Plugin::Authentication](https://metacpan.org/pod/Catalyst::Plugin::Authentication), [Net::Twitter](https://metacpan.org/pod/Net::Twitter)
# BUGS AND LIMITATIONS
`Catalyst::Authentication::Credential::Twitter` works well
with [Catalyst::Authentication::Store::DBIx::Class](https://metacpan.org/pod/Catalyst::Authentication::Store::DBIx::Class), but might
have problem with other stores, as its `authenticate()` method uses
```perl
$realm->find_user({
twitter_user_id => $authenticated_twitter_id
}, $c);
```
to find the user. If this causes a problem for your store,
you can get around it by using `authenticate_twitter()` and
accessing the store manually.
Please report bugs to [http://rt.cpan.org/Ticket/Create.html?Queue=Catalyst-Authentication-Credential-Twitter](http://rt.cpan.org/Ticket/Create.html?Queue=Catalyst-Authentication-Credential-Twitter)
# THANKS
Thanks go out Daisuke Murase for writing C::P::A::Credential::Flickr,
Marc Mims and Chris Thompson for Net::Twitter.
# AUTHORS
- Jesse Stay <jesse@staynalive.com>
- Yanick Champoux <yanick@cpan.org> [](http://coderwall.com/yanick)
# COPYRIGHT AND LICENSE
This software is copyright (c) 2009 by Jesse Stay.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
( run in 2.070 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )