<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Mon, 21 May 2012 08:17:05 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Dave Marshall's Blog: How I'm designing a RESTful(ish) web service]]></title>
      <guid>http://www.phpdeveloper.org/news/17570</guid>
      <link>http://www.phpdeveloper.org/news/17570</link>
      <description><![CDATA[<p>
<i>Dave Marshall</i> is in the process of building a "RESTish" web service and has <a href="http://davedevelopment.co.uk/2012/02/16/how-im-doing-rest.html">shared some of his planning steps</a> in a new post to his blog.
</p>
<blockquote>
This post is going to describe how I've ending up designing, what I consider to be a fairly RESTful web API. I'm far from being an expert, and this is definitely the closest thing to a RESTful API that I've ever created, so I'm not even experienced with REST APIs. [...] Until about 6 months ago, I'd always been sceptical of creating RESTful APIs, but I think I've had a few pennies drop since then that have made me fairly confident that I grasp the basics pretty well.
</blockquote>
<p>
He touches on topics like: authentication, the <a href="http://martinfowler.com/articles/richardsonMaturityModel.html">Richardson Maturity model</a>, HTTP verbs, sample request and response messages and some BDD-style tests to predict the output of a basic request.
</p>]]></description>
      <pubDate>Wed, 22 Feb 2012 09:13:31 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Leaseweb Labs Blog: Migration to Symfony2 continued]]></title>
      <guid>http://www.phpdeveloper.org/news/17525</guid>
      <link>http://www.phpdeveloper.org/news/17525</link>
      <description><![CDATA[<p>
On the LeaseWeb Labs blog there's a continuation from a previous post about migrating your Symfony1 application over to Symfony2. In the <a href="http://phpdeveloper.org/news/17299">first part</a> of this series of posts, <i>Stefan Koopmanschap</i> talked about wrapping your code to make it work. In <a href="http://www.leaseweblabs.com/2012/02/migration-to-symfony2-continued/">this second post</a>, <i>Maurtis van der Schee</i> tackles two issues <i>Stefan</i> mentioned - performance problems and handling authorization/authentication.
</p>
<blockquote>
On December 21, 2011 Stefan Koopmanschap wrote an excellent article on this blog titled "Painless (well, less painful) migration to Symfony2." [...] We were very much inspired by his passionate elucidation and we were fully convinced of the urge to start migrating to Symfony2 as soon as possible. However, he also provided us with a "A word of caution" about 2 things: performance and authentication/authorization. This might get some people worried, but not us: it challenged us to find a solution for those two open issues.
</blockquote>
<p>
They explain why these two things are a problem and some of their solutions they've created - a .htaccess for routing and manually replicating the Symfony2 session in the Symfony1 code. Included in the post are the rewrite rules and code to make these two things happen (and a small configuration change to make them work).
</p>]]></description>
      <pubDate>Thu, 09 Feb 2012 11:51:59 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[AndroidHive: Android Login and Registration with PHP, MySQL and SQLite]]></title>
      <guid>http://www.phpdeveloper.org/news/17487</guid>
      <link>http://www.phpdeveloper.org/news/17487</link>
      <description><![CDATA[<p>
On the AndroidHive site there's a <a href="http://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/">recent tutorial</a> (plus screencast) about combining PHP, MySQL and SQLite to act as the backend authorization for your Android application.
</p>
<blockquote>
In my previous article <a href="http://www.androidhive.info/2011/10/android-login-and-registration-screen-design/">Android Login and Registration Screen Design</a> i explained designing the login and registration interfaces, but it has no functionality. In this tutorial i am explaining how to build complete login and registration system in android using PHP, MySQL and SQLite. Also this tutorial covers how to build simple API using PHP and MySQL.
</blockquote>
<p>
<a href="http://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/">The tutorial</a> walks you through each step of the process:
</p>
<ul>
<li>Creating MySQL Database and Tables
<li>Building PHP API Classes
<li>Starting Android Project
<li>Making the JSON Parser, SQLite Database Handler and User Functions Classes
<li>Designing the Screens
<li>Switching between Activities
<li>Finally Updating AndroidManifest.xml
</ul>
<p>
If you want to get started quickly, you can just <a href="http://www.box.com/s/kscvgpb1iadv5ppxgrie">download the final result</a> and go.
</p>]]></description>
      <pubDate>Thu, 02 Feb 2012 10:41:21 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Andrew Perkin's Site: Cakephp Video Tutorials (Authentication)]]></title>
      <guid>http://www.phpdeveloper.org/news/17292</guid>
      <link>http://www.phpdeveloper.org/news/17292</link>
      <description><![CDATA[<p>
As mentioned on DZone.com, there's a <a href="http://www.andrews-custom-web-design.com/cakephp.html">video tutorial series</a> from <i>Andrew Perkins</i> about setting up an authentication system in <a href="http://cakephp.org">CakePHP</a>-based applications.
</p>
<blockquote>
Here you can find the related articles to my Cakephp videos if you would prefer to read them rather than watch. You will can also download all of the source code for the corresponding videos. [...] They only include the app folder, as we'll never change anything in the other folders, at least not in these tutorials.
</blockquote>
<p>
The videos currently cover <a href="http://www.andrews-custom-web-design.com/cakephp-blog-tutorial-part-1-installation.html">installation</a> of the framework and some of the <a href="http://www.andrews-custom-web-design.com/cakephp-blog-tutorial-part-2-naming-conventions.html">naming conventions</a> to follow. The source has the full authentication system, though - all the way from setting up helper methods to creating the actual authentication component.
</p>]]></description>
      <pubDate>Thu, 22 Dec 2011 10:53:36 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Understanding OAuth - Tweeting from Scratch, Part 2]]></title>
      <guid>http://www.phpdeveloper.org/news/17037</guid>
      <link>http://www.phpdeveloper.org/news/17037</link>
      <description><![CDATA[<p>
On PHPMaster.com today they're posted the <a href="http://phpmaster.com/understanding-oauth-2/">second part of their OAuth series</a> showing you how to use the authentication mechanism to connect to <a href="http://twitter.com">Twitter</a>'s API. (Part one <a href="http://phpdeveloper.org/news/17006">is here</a>.
</p>
<blockquote>
Welcome back to Understanding OAuth - Tweeting from Scratch. This is Part 2 of the two-part series and picks up right where we left off in <a href="http://phpmaster.com/understanding-oauth-1">Part 1</a> with your returned Access Credentials. Since obtaining the credentials is the grueling part of the process, there's not much more left to do except posting a tweet on the user's behalf. Hopefully you'll find the final steps to be a lot easier to follow and more fun to implement.
</blockquote>
<p>
They show you how to store the credentials from Part 1 into your session for safe keeping and  include a simple form you will use to send a tweet to Twitter. They choose to manually build the HTTP POST request, including the credential headers along with the payload (oauth_consumer_key, oauth_signature, oauth_token, etc).
</p>]]></description>
      <pubDate>Tue, 25 Oct 2011 10:09:48 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Carson McDonald's Blog: Google OAuth for Installed Apps PHP Example]]></title>
      <guid>http://www.phpdeveloper.org/news/16978</guid>
      <link>http://www.phpdeveloper.org/news/16978</link>
      <description><![CDATA[<p>
<i>Carson McDonald</i> has posted an example of how to <a href="http://www.ioncannon.net/programming/1443/google-oauth-for-installed-apps-php-example/">use the Google OAuth for Installed Apps</a> tool to authenticate users.
</p>
<blockquote>
I have been working on a long needed update to the <a href="http://www.ioncannon.net/projects/google-analytics-dashboard-wordpress-widget/">Google analytics dashboard plugin for WordPress</a> and one of the items I had on my TODO list was using Google's OAuth login instead of the old ClientLogin. Setting OAuth up for a WordPress plugin is complicated because it isn't a hosted application and as such I can't register it to get OAuth keys. That is where a special way of doing OAuth comes in called <a href="http://code.google.com/apis/accounts/docs/OAuthForInstalledApps.html">OAuth for installed apps</a>.
</blockquote>
<p>
He uses <a href="http://oauth.googlecode.com/svn/code/php/">this OAuth library</a> to handle the "dirty work" of the connections. With that included in the application, he shows how to - in two phases - make an authentication system that direct the user to a Google link for completing the authentication process. He points to the <a href="http://code.google.com/apis/gdata/articles/oauth.html">Google OAuth docs</a> and <a href="http://googlecodesamples.com/oauth_playground/">playground</a> as good resources to help you during the process.
</p>]]></description>
      <pubDate>Tue, 11 Oct 2011 12:13:10 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Project: Warden: A user database authorization package for FuelPHP]]></title>
      <guid>http://www.phpdeveloper.org/news/16929</guid>
      <link>http://www.phpdeveloper.org/news/16929</link>
      <description><![CDATA[<p>
<a href="http://fuelphp.com">Fuel framework</a> users have another option when it comes to user authentication management in their applications. <i>Ando</i> has released <a href="http://dre1080.github.com/warden/">Warden</a>, a package that manages logins, password hashing and user ACLs.
</p>
<blockquote>
Warden is a user database authorization package for the FuelPHP framework that aims to fast track development by handling the work load of uthenticating user's. Built for performance, it comes with a ready-to-use user model and database install script.
</blockquote>
<p>
The package uses <a href="http://php.net/bcrypt">bcrypt</a> for password hashing and also provides features for forgotten passwords, password resets and "remember me" functionality. Installation is as simple as adding it to your "always_load" package list and setting up a few configuration options. Sample code for its features is included. You can get the latest version <a href="https://github.com/dre1080/warden">directly from github</a>.
</p>]]></description>
      <pubDate>Thu, 29 Sep 2011 12:19:41 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Ade Slade's Blog: Implementing Twitter sign-in with Silex and PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/16729</guid>
      <link>http://www.phpdeveloper.org/news/16729</link>
      <description><![CDATA[<p>
<i>Ade Slade</i> has written up a quick new post to his blog today showing how you can use the lightweight <a href="http://silex-project.org/">Silex</a> framework to <a href="http://adeslade.co.uk/post/implementing-twitter-sign-in-with-silex-and-php">link your login with Twitter</a> and validate users from their API.
</p>
<blockquote>
For those not acquainted with <a href="http://silex-project.org/">Silex</a>: Silex is a PHP microframework for PHP 5.3 A microframework provides the guts for building simple single-file apps. It's awesome. For the example, I've setup a virtual host of example.local on my development machine.
</blockquote>
<p>
He includes the contents of the .htaccess you'll need to get the rewrite to work for Silex, a link to the <a href="https://dev.twitter.com/docs/auth/oauth">OAuth extension</a> you'll need to install for PHP and the code to make the login and auth routes. You'll need to <a href="https://dev.twitter.com/apps">create a Twitter application</a> for your site to get the OAuth secret key to make the authentication work. You can see the complete code <a href="https://gist.github.com/1148079">here</a>.
</p>]]></description>
      <pubDate>Wed, 17 Aug 2011 09:55:40 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Mike Purcell's Blog: Symfony - sfGuardPlugin - Use Email Instead of Username]]></title>
      <guid>http://www.phpdeveloper.org/news/16715</guid>
      <link>http://www.phpdeveloper.org/news/16715</link>
      <description><![CDATA[<p>
<i>Mike Purcell</i> has a handy new post for the Symfony users out there wanting more flexibility with their sfGuardPlugin use in their application. He describes how you can <a href="http://melikedev.com/2011/08/12/symfony-sfguardplugin-use-email-instead-of-username/">use email instead of a username</a> for working with the user information.
</p>
<blockquote>
sfGuardPlugin is pretty awesome. It allows a symfony developer the ability to quickly implement a user login and access control system. However, there is an issue with respect to telling the plugin whether to use the username or the email column for validating user submitted input. After some Googling I found a few sites which forced sfGuardPlugin to use email rather than username, but only after quite a bit of work. What I am going to show will accomplish the same end goal, but with minor changes.
</blockquote>
<p>
He starts with a look at the validator class, showing how the values are going to be passed to the backend. The plugin makes a call to a "retrieveByUsername" method to get the user's information, but his method overrides this...sort of. His method actually contains the query to fetch the user information by email instead. This is useful if you want to use the email address as a username for the site but still want to maintain data integrity on the user records (valid emails can then be used for auth and for sending messages).
</p>]]></description>
      <pubDate>Mon, 15 Aug 2011 08:43:56 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[StackOverflow.com: The Definitive Guide To Forms based Website Authentication]]></title>
      <guid>http://www.phpdeveloper.org/news/16713</guid>
      <link>http://www.phpdeveloper.org/news/16713</link>
      <description><![CDATA[<p>
If you haven't seen it yet, there's a post over on StackOverflow that's been growing over the past few days about <a href="http://stackoverflow.com/questions/549/the-definitive-guide-to-forms-based-website-authentication">form-based authentication in websites</a>. The author wants to make a definitive resource for people to use when making good, secure user authentication systems.
</p>
<blockquote>
Please help us create the definitive resource for this topic. We believe that stackoverflow should not just be a resource for very specific technical questions, but also for general guidelines on how to solve variations on common problems. "Form Based Authentication For Websites" should be a fine topic for such an experiment.
</blockquote>
<p>
They want to include topics like logins, storing passwords, "forgot password" security, OpenID, browser autocompletion, password strength, email validation and more. They already laid out eight different sections with summaries including:
</p>
<ul>
<li>How To Remain Logged In - The Infamous "Remember Me" Checkbox
<li>Using Secret Questions
<li>Checking Password Strength
<li>Much More - Or: Preventing Rapid-Fire Login Attempts
<li>Two-Factor Authentication and Authentication Providers
</ul>
<p>
There's some <a href="http://stackoverflow.com/questions/549/the-definitive-guide-to-forms-based-website-authentication">good feedback from other users</a> with other suggestions and links to external resources that could shed some more light on the topic.
</p>]]></description>
      <pubDate>Fri, 12 Aug 2011 12:13:35 -0500</pubDate>
    </item>
  </channel>
</rss>

