Package: cs.auth.facebook
IntroductionA PAS plugin to login into a Plone Site using Facebook.Log in to a Plone site through Facebook: when a user requests to log in to the Plone site he will be redirected to Facebook so that he provides the credentials there, then he will be redirected back to the Plone site and will be identified there.The user will be a standard Plone user, so Roles or Group membership can be set.Minimal user information is kept in Plone such as full name, Facebook ID, photo and e-mail (if available) of the user. This is kept to avoid permanent requests to Facebook API. This information is refreshed each time the user logs in to the site.Installation and getting startedBuildoutAddcs.auth.facebookto yourbuildout.cfgeggs list:[buildout]
...
eggs =
    cs.auth.facebookOr as a required install dependency of your own addonsetup.py:install_requires=[
    ...
    'cs.auth.facebook',
],Create a new Facebook app athttps://developers.facebook.com/appand fill
in the required data in the plugin’s control panel form.Install the product in the Plone Control Panel and provide the app_id
and app_secret in the configuration panel.Now you see the “Facebook Login” button viewlet. To customize the placement of this
viewlet please check out thePlone Viewlet DocumentationAlternatively you can enable an action in portal_actions with the following configuration
(seeprofiles/default/actions.xmlwithin this package):<object name="portal_actions" meta_type="Plone Actions Tool"
   xmlns:i18n="http://xml.zope.org/namespaces/i18n">
    <object name="user" meta_type="CMF Action Category">
        <object name="login_facebook" meta_type="CMF Action" i18n:domain="cs.auth.facebook">
            <property name="title" i18n:translate="">Log in with Facebook</property>
            <property name="description" i18n:translate=""></property>
            <property name="url_expr">string:${globals_view/navigationRootUrl}/@@facebook-login</property>
            <property name="icon_expr"></property>
            <property name="available_expr">python:member is None</property>
            <property name="permissions">
                <element value="View"/>
            </property>
            <property name="visible">False</property>
        </object>
    </object>
</object>Behind the scenesThe Facebook Login Viewlet uses the new Facebook JavaScript SDK v4.0 to ensure
the proper popup for every target device. You don’t have to care about this.For more information on FB JSDK checkout theFacebook Developers Login DocumentationCreditThis product re-distributes a lot of code written by Martin Aspeli
(aka @optilude) in his book “Professional Plone 4 Development” and
available under GPL license in his personal GitHub account with
the name ‘optilux.facebookauth’:https://github.com/optilude/optilux/tree/chapter-16/src/optilux.facebookauthCompatibilityPlone 4.x
Plone 5.xChangelog1.2 (2019-10-09)Updated to Facebook API 4.0
[sarn0ld]1.1 (2017-05-10)Facebook Login with JavaScript SDK v2.1
[petschki]add Facebook Login Viewlet
[petschki]disable old style portal_action by default. code is still there (see documentation)
[petschki]Fix access_token processingRemove Welcome message1.1b1 (2014-10-22)Remove dependency on collective.beaker. Optional Beaker support is available
withhttps://pypi.python.org/pypi/Products.BeakerSessionDataManagersince we use Zope’s session_data_manager
[petschki]1.0.3 (2014-10-21)Add german translation
[petschki]Encoding unicode user credentials.
seehttp://goo.gl/63Kyuofor more info
[petschki]1.0.2 (2014-10-10)Fix dependencies includes
[erral]1.0.1 (2014-10-10)Fix docs
[erral]1.0 (2014-10-10)Fix user search
[erral]Fix to be able to add the plugin through the ZMI
[erral]1.0b2 (2012-10-16)FaceBook users are now PloneUsers
[erral]Implement user search in storage
[erral]Get properties from self data storage instead of relying on Session
[erral]Change user action name not to clash with Plone’s login
[erral]1.0b1 (2012-07-13)Initial release
[erral]