[Catalyst] Catalyst::Authentication::Credential::OAuth

Bogdan Lucaciu bogdan at sinapticode.ro
Wed Nov 24 08:12:27 GMT 2010


you can also read http://www.catalystframework.org/calendar/2009/4

but as far as I know, the OAuth credential doesn't (yet) properly work
with Facebook, there should be a new release soon fixing that.

On Wed, Nov 24, 2010 at 1:27 AM, Hernan Lopes <hernanlopes at gmail.com> wrote:
> To integrate facebook login onto your site,
> Have you tried Catalyst::Authentication::Credential::FBConnect ?
> It works and lets you access users facebook id from $c->user->session_uid as
> documented
>
> 1. You need to register under http://developers.facebook.com and register a
> new application. You must include the exact address you will use on the
> machine for it to work ie. "http://localhost:3000/"
>
> 2. you need to configure include these onto your myapp.conf
>
>     <Plugin::Authentication>
>         default_realm   facebook
>         <realms>
>             <facebook>
>                 <credential>
>
>                     class       FBConnect
>                     api_key     my_app_key
>                     secret      my_app_secret
>                     app_name    my_app_name
>                 </credential>
>
>             </facebook>
>         </realms>
>     </Plugin::Authentication>
>
> 3. you need a piece of javascript from facebook to create login button
> (replace with your appId/fb_app_id as below):
>
> sub login_facebook : Path('/loginfacebook') : Args(0) {
>     my ( $self, $c ) = @_;
>     my $fb_app_id = '9999999999999999';
>     $c->stash( template => \<<FBLOGIN
>
>     <p><fb:login-button autologoutlink="true"></fb:login-button></p>
>     <p><fb:like></fb:like></p>
>
>     <div id="fb-root"></div>
>
>     <script>
>       window.fbAsyncInit = function() {
>         FB.init({appId: '$fb_app_id', status: true, cookie: true,
>                  xfbml: true});
>
>     FB.Event.subscribe('auth.sessionChange', function(response) {
>
>       if (response.session) {
>         // A user has logged in, and a new cookie has been saved
>         window.location="/fblogin"; //redirects user to our facebook login
> so we can validate him and get his user id.
>
>       } else {
>         // The user has logged out, and the cookie has been cleared
>         window.location="/";
>       }
>     });
>       };
>
>       (function() {
>         var e = document.createElement('script');
>
>         e.type = 'text/javascript';
>         e.src = document.location.protocol +
>           '//connect.facebook.net/en_US/all.js';
>         e.async = true;
>
>         document.getElementById('fb-root').appendChild(e);
>       }());
>     </script>
> FBLOGIN
> );
> }
>
> 4. then , i created an action  /fblogin to register facebook credentials
> internally when user logs in (see in the js)
>
> sub fbauthenticate :Path('/fblogin') :Args(0) {
>     my ($self, $c) = @_;
>     if ($c->authenticate()) {
>         $c->log->debug($c->user->session_uid);
>         $c->log->debug($c->user->session_key);
>         $c->log->debug($c->user->session_expires);
>         }
>     $c->res->redirect('/');
> }
>
>
> So remember, register at the http://developer.facebook.com with the same url
> your application will use, include ports if its not 80
>
> --Hernan
>
>
> On Tue, Nov 23, 2010 at 8:32 PM, Blaine Everingham
> <grandmasterblaine at hotmail.com> wrote:
>>
>> Hi,
>>
>> I was wondering if anyone has a simple example of using OAuth with
>> facebook to allow user login, to your software.
>>
>> I keep getting the error "oauth_parameters_absent:scope", but
>> Catalyst::Authentication::Credential::OAuth document does not outline where
>> you are supposed to enter this.
>>
>> Thanks,
>> Blaine
>>
>> _______________________________________________
>> List: Catalyst at lists.scsys.co.uk
>> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
>> Searchable archive:
>> http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
>> Dev site: http://dev.catalyst.perl.org/
>>
>
>
> _______________________________________________
> List: Catalyst at lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
>
>



-- 
Bogdan Lucaciu
http://www.sinapticode.com



More information about the Catalyst mailing list