1 Introduction
Gentics Portal.Node PHP provides build-in mechanism for Third Party Authentication. This allows users to log in by using accounts from other systems.
By default this supports:
- Google OAuth 2
- Google Open ID (deprecated by Google)
2 How does it interact with “user module”

Account model stores all data for user profiles which are returned by the user service of the TPA. These might be ..
- Internal service ID
- Username
- Age
This class connects User model (which is representing the user profile inside the portal) to the TPA service.
For every TPA service a specific class is used. For example:
- GoogleOAuth2Service
- FacebookService
- GoogleService (deprecated by Google)
GoogleService

FacebookService

All classes which connect Gentics Portal.Node to TPA service should implement two interfaces:
- EAuthServiceBase
- IUserFields

3 How to create your own authentication
To implement your own authentication method:
- Create a class in the folder common/modules/user/services. It should implement IUserFields interface and extend EAuthServiceBase.
- Enable it in the configuration file
Configuration example:
'services' => array(
'eauth' => array(
// Use the popup window instead of redirecting.
'popup' => true,
//currenly using services for authentication
'services' => array(
'standard' => array(
'title' => 'With username/password'
),
'google' => array(
'class' => 'site.common.modules.user.services.GoogleService',
'title' => 'Google open Id'
),
'facebook' => array(
// application register at: https://developers.facebook.com/apps/
'title' => 'Facebook',
'class' => 'site.common.modules.user.services.FacebookService',
'client_id' => '41018325646',
'client_secret' => '967c36654171233bfeec6c1e3d',
'scope' => 'email'
),
)
),
)
For Facebook authentication you have to create a new facebook app and add the client_secret and your user_id (client_id) in the configuration.
After enabling they will automatically appear in the login widget: 