pessek / elgg_hybridauth
Elgg 的 HybridAuth 集成
Requires
- php: >=7.1
- composer/installers: ~1.0
- hybridauth/hybridauth: ~2.8
- paragonie/random_compat: 9.99.100
This package is auto-updated.
Last update: 2024-09-29 05:29:22 UTC
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 设置中
应用程序类型是 Web 应用程序 您的网站或主机名 - 点击更多选项 授权重定向 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