sfLinkedInPlugin helps to integrate oauth library to allow users to authenticate to your website via linkedin. For more information: http://developer.linkedin.com/docs/DOC-1008
Other units, it allows integration javascript API to authenticate users via javascript framework IN. For more information: http://developer.linkedin.com/docs/DOC-1225
This plugin for symfony 1.2 to 1.4 depends to propel.
currently, this plugin is in alpha version. please wait for a stable version to use it in production environement.
The easiest way to install sfLinkedInPlugin is to use the symfony command line:
> symfony plugin:install sflinkedInPlugin --stability=alpha
Alternatively, if you don't have PEAR installed, you can download the latest package attached to this plugin's wiki page and extract it under your project's plugins/ directory.
You can also refer to the plugin's Subversion repository by doing a checkout or an svn:externals of http://svn.symfony-project.com/plugins/sfLinkedInPlugin
2 - Build the data structures
Rebuild the model and generate the SQL code for the new tables:
> php symfony propel:build-model
> php symfony propel:build-sql
Create the new table in your database. Use the generated data/sql/plugins.sflinkedInPlugin.lib.model.schema.sql file for that purpose. For instance, with MySQL:
> mysql -uroot -p mydb < data/sql/plugins.sflinkedInPlugin.lib.model.schema.sql
3 - Configure your project to use the plugin features
Enable the sfLinkedIn module in your frontend application, via the settings.yml file.
// in myproject/apps/frontend/config/settings.yml
all:
.settings:
enabled_modules: [default, sfLinkedIn]
add a new route for the back url into your routing.yml file:
#sfLikedIn
accessToken:
url: /likedIn-authenticate/*
param: { module: sfLinkedIn, action: accessToken }
configure the app.yml, you can just override values in the app.yml with this plugin:
consumer_key: copy & paste your api key generated when creating your linkedin application
consumer_secret: copy & paste your api secret key generated when creating your linkedin application
back_url: it's the new route added in routing.yml
debug: ON|OFF
6 - You can now start using the plugin by browsing to the module's default page:
http://myproject/frontend_dev.php/sfLinkedIn/index
All generic work was putted in modules/sfLinkedIn/lib/BasesfLinkedInActions.class.php
to customize this plugin to your own application, you should refer to modules/sfLinkedIn/actions/actions.class.php After authenticating via linkedIn we execute executeAuthenticate action, so in the example, we have prepared a form. this form will be used to get the user-email. Because, we have all linkedIn user informations but not the email. the email is key, we use it to: 1-identify the user in our website if the email exist in our database. 2-create a new user using his email and his linkedIn profile.
the method authenticateTrigger , it is called when user try to use linkedIn authentication and he is already registred in our database. i putted an example to how override that method.
the method processForm, used when user send us his email, in the example we have 2 choices: 1- mail not exist => we create a new user 2- mail exist => we associate the user to his linkedin profile.
this was the oauth linkedin part. Next time, i will put a documentation for how to use the linkedin javascript framework.