ondrakoupil/hybridauth-skautis

HybridAuth 插件,允许通过 SkautIS 简单登录。

v0.1 2015-09-14 09:49 UTC

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 单位的数据。如何处理它们取决于您。

请查看类 UserProfileRoleUnit,您可以从这些类中详细了解。

图片

HybridAuth 假设登录提供者会提供一个 URL,用于下载用户头像。这个 URL 可以通过 UserProfile -> $photoURL 获取。但 SkautIS 直接发送图片的二进制内容。虽然图片内容在 UserProfile -> $photoData 中可用,但为了与其他提供者保持兼容性,可以在配置中设置 photoProxy 项,以统一处理图片。请选择一个在登录后更适合图片处理的访问方法。

photoProxy 可以是一个普通字符串,表示某个目录的路径。登录后,将在该目录中创建一个图片文件,并将 $photoURL 设置为指向该文件的路径。这个路径仅限于本地访问。在处理完毕后,应删除此文件。

第二种选择是提供一个包含两个项的数组,分别是 dirurl。与前面相同,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 中添加问题,或者直接联系我。如果能力范围内,我会尽力提供帮助 :-)