arckinteractive / elgg_hybridauth
Elgg 的 HybridAuth 集成
Requires
- php: >=5.5
- composer/installers: ~1.0
- hybridauth/hybridauth: ~2.8
- paragonie/random_compat: ^2.0
README
elgg_hybridauth 是一个身份验证工具,允许用户使用社交媒体账户创建新的 Elgg 账户。
默认包含的提供者
- AOL
- Foursquare
- Live
- MySpace
- OpenID
- Yahoo
访问 http://hybridauth.sourceforge.net/ 了解有关 HybridAuth 库的更多信息以及可以添加到此分发的附加提供者。
功能
- 允许单个 Elgg 个人资料连接到多个提供者账户
- 遵循 Elgg 的原生注册工作流程
- 允许用户在其账户设置中授权/取消授权提供者
- 可选地,允许管理员从 elgg_social_login 和 social_connect 导入用户设置
- 为每个提供者提供配置权限范围的接口
升级
- 在升级时,首先禁用插件,上传更新的插件文件,然后重新启用以使更新设置生效
提供者设置
设置 Facebook
- 前往 https://developers.facebook.com/apps
- 创建一个新应用程序
- 选择带有 Facebook 登录的网站并输入您的网站 URL
- 将您的 App ID 和 App Secret 复制到插件设置中相应的字段
- 有关权限范围的更多信息,请访问 https://developers.facebook.com/docs/reference/login/
- 确保您已在应用程序设置中添加了具有 URL 的网站作为平台
- 确保您已在应用程序设置中配置了您的域名
- 在 Facebook 登录设置中,启用嵌入式浏览器 OAuth 登录
- 将 http://SITE-URL/hybridauth/endpoint 添加为有效的 OAuth 重定向 URI
设置 Twitter
- 前往 https://dev.twitter.com/apps/new
- 创建一个新应用程序
- 输入回调 URL: http://SITE-URL/hybridauth/endpoint?hauth.done=Twitter
- 将您的 Consumer Key 和 Consumer Secret 复制到插件设置中相应的字段
设置 Google
- 前往 https://code.google.com/apis/console/
- 创建一个新项目
- 切换到 API 访问选项卡
- 单击创建 OAuth 2.0 客户端 ID 并填写表单
- 在客户端 ID 设置中
应用程序类型是网络应用程序您的站点或主机名 - 点击更多选项授权重定向 URI - 输入身份验证 URL http://SITE-URL/hybridauth/endpoint?hauth.done=Google
- 将您的客户端 ID 和客户端密钥复制到插件设置中相应的字段
- 有关权限范围的更多信息,请参阅 https://developers.google.com/accounts/docs/OAuth2Login#consentpageexperience 和 https://developers.google.com/oauthplayground/
- 如果您在使用 Google 授权用户时遇到困难
请确保您已激活设置中列出的权限范围的相应API: https://developers.google.com/+/api/oauth#scopes 默认列出的权限范围需要
Google+
和Contacts
API才能工作
设置LinkedIn
- 访问 https://www.linkedin.com/secure/developer
- 创建新应用
在OAuth用户协议中,根据您的需求更新默认权限范围。如果您不确定,请检查r_basicprofile、r_emailaddress、rw_nus和r_network。您不需要填写重定向URL
- 将API密钥复制到插件设置中的公钥字段
- 将密钥复制到插件设置中的私钥字段
设置Yahoo!
- 访问 https://developer.apps.yahoo.com/dashboard/
- 创建新项目
填写项目信息。在访问范围中,选择“此应用需要访问私有用户数据”。应用程序域名 - 输入 http://SITE-URL/hybridauth/endpoint?hauth.done=Yahoo 选择用于私有用户数据访问的API:至少需要选择一个API(例如,社交目录)
- 将消费者密钥和消费者密钥复制到插件设置中相应的字段
设置实时
- 访问 https://account.live.com/developers/applications/create
- 创建您的应用
设置重定向域为您的站点域名,即 http://SITE-URL/
- 将客户端ID和客户端密钥复制到插件设置中相应的字段
设置FourSquare
- 访问 https://foursquare.com/developers/apps
- 创建您的应用
- 将客户端ID和客户端密钥复制到插件设置中相应的字段
开发者备注
从1.1.1版本开始,您可以使用 'hybridauth:authenticate', $provider
插件钩子来执行一些操作,当用户使用提供商进行身份验证时。这可能是一个将内容发布到用户墙或抓取用户头像的好地方。
如何将用户加入本网站的示例发布到用户的墙上的示例
// do stuff when the user is authenticated with one of the providers elgg_register_plugin_hook_handler('hybridauth:authenticate', 'all', 'elgg_hybridauth_on_authenticate'); function elgg_hybridauth_on_authenticate($hook, $provider, $return, $params) { $user = elgg_extract('entity', $params); try { $ha = new ElggHybridAuth(); $adapter = $ha->getAdapter($provider); if ($adapter->isUserConnected()) { $status = $user->name . ' just joined ' . elgg_get_config('sitename') . ' at ' . elgg_get_site_url(); $adapter->setUserStatus($status); } } catch (Exception $e) { // Something is wrong } }
升级
到1.3
-
出于性能原因,
HYBRIDAUTH_PUBLIC_AUTH
不再定义。需要调用elgg_get_plugin_setting('public_auth', 'elgg_hybridauth')
。 -
base_url
和debug_file
不再通过插件设置设置。它们使用当前安装路径和wwwroot动态设置。 -
由于LinkedIn权限范围的最近更改,HybridAuth产生了不可靠的结果。出于稳定性的考虑,用自定义实现替换了HA LinkedIn类和LinkedIn包装器。 https://developer.linkedin.com/support/developer-program-transition