ondrakoupil / hybridauth-skautis
HybridAuth 插件,允许通过 SkautIS 简单登录。
Requires
- php: >=5.3.1
- ext-soap: *
- hybridauth/hybridauth: ^2.4
Requires (Dev)
- nette/tester: ^1.4
- ondrakoupil/testing-utils: ~0.0.7
This package is auto-updated.
Last update: 2024-08-29 04:00:04 UTC
README
HybridAuth 是一个 PHP 库,用于通过不同的公共服务和社交网络进行通用登录,例如 Facebook 或 Google。使用此扩展,您可以将 SkautIS 登录添加到您的应用程序中。
安装
如果您的应用程序使用 Composer,则可以简单地
composer require ondrakoupil/hybridauth-skautis
如果您不使用 Composer,则需要从 src
目录复制文件,并以任何方式包含它们。您可以从 其网站 下载 HybridAuth。
使用
通过 SkautIS 的登录与通过 Google 或 Facebook 的登录几乎相同。如果您没有使用 HybridAuth 的经验,请阅读 其文档,其中详细说明了所有内容。
或者阅读 HybridAuth 快速入门指南,它将引导您走向正确的方向。
您还需要将您的应用程序注册到 SkautIS 中并获取其 AppID。
设置
在 HybridAuth 配置中,您将添加一个名为 SkautIS 的新提供者。配置可能看起来大致如下
$config = array( "base_url" => "... URL vašeho endpointu ...", "providers" => array ( "SkautIS" => array( "enabled" => true, "test" => true, "wrapper" => array( "class" => "\\HybridAuth\\SkautIS\\Adapter" ), "keys" => array( "appId" => "... vaše APP ID ..." ), "data" => array( "contacts" => true, "photo" => true, "roles" => true, "unit" => true, "roleUnitDetails" => false ), "photoProxy" => "", "photoSize" => "medium" ), "Google" => "...", "Facebook" => "...", "Twitter" => "..." ) );
现在更详细地介绍每个项目
- test = true 或 false,根据您是否想使用测试 SkautIS 还是生产 SkautIS。默认值为 true(即测试)。在生产转换时,请记住更改 AppID。
- wrapper = 如果您没有将
Adapter
文件复制到 HybridAuth 源代码目录中的其他适配器之间,则需要输入类名(包括命名空间)(即\HybridAuth\SkautIS\Adapter
)。 - keys = 数组,只有一个项目
appId
。不要忘记,测试和生产 SkautIS 是不同的。 - data = 可选的数组,允许您指定您需要从 SkautIS 中提取的所有内容,并可能通过禁用不需要的数据来加速登录。默认情况下,除了
roleUnitDetails
之外,所有内容都处于开启状态。contacts
= 其他联系人(如电话或网站),除了电子邮件(电子邮件始终是基本数据的一部分)photo
= 用户个人资料照片roles
= 用户的所有角色列表unit
= 用户注册的单位(分队、中心等)的详细信息roleUnitDetails
= 用户具有角色的所有单位的详细信息
- photoProxy = 可选,见下文
- photoSize = 可选的所需照片大小:small、medium、normal、big
与标准 HybridAuth 登录的区别
由于 SkautIS 非常特殊,并且您可能需要从 SkautIS 获取一些比 HybridAuth 从传统社交网络中提取的数据更多的数据,因此调用 $adapter->getUserProfile()
不返回标准的 Hybrid_User_Profile
,而是其扩展版本,即类 \HybridAuth\SkautIS\UserProfile
的对象。它包含基本配置文件以及一些额外的特定于 SkautIS 的数据,特别是关于角色和 Junák 单位的数据。如何处理它们取决于您。
请查看类 UserProfile、Role 和 Unit,您可以从这些类中详细了解。
图片
HybridAuth 假设登录提供者会提供一个 URL,用于下载用户头像。这个 URL 可以通过 UserProfile -> $photoURL
获取。但 SkautIS 直接发送图片的二进制内容。虽然图片内容在 UserProfile -> $photoData
中可用,但为了与其他提供者保持兼容性,可以在配置中设置 photoProxy
项,以统一处理图片。请选择一个在登录后更适合图片处理的访问方法。
photoProxy
可以是一个普通字符串,表示某个目录的路径。登录后,将在该目录中创建一个图片文件,并将 $photoURL 设置为指向该文件的路径。这个路径仅限于本地访问。在处理完毕后,应删除此文件。
第二种选择是提供一个包含两个项的数组,分别是 dir
和 url
。与前面相同,dir
是保存文件的目录路径,而 url
是文件的公共 URL 地址,通过它可以访问该目录中的文件。$photoURL 然后设置为生成文件的公共 URL。
"photoProxy" => "../some/temp/directory"
"photoProxy" => array(
"dir" => "../www/portraits",
"url" => "http://www.moje-aplikace.cz/portraits"
)
错误调试
如果出现问题,可以启用 HybridAuth 的标准调试模式。只需将以下内容添加到配置中即可:
"debug_mode" => true,
"debug_file" => "cesta_k_souboru/kam_se_bude/logovat.txt"
然后,除了其他处理信息外,日志还将记录与 SkautIS 的通信,包括每个调用方法和返回值。
帮助、支持、错误报告等。
如果您遇到任何问题或对某些内容不清楚,请在此 GitHub 上的 issue 中添加问题,或者直接联系我。如果能力范围内,我会尽力提供帮助 :-)