org_heigl / hybridauth
基于 hybridauth-library 的轻量级认证模块,用于 Zend-Framework 2
Requires
- php: ^5.6 || ^7.0
- guzzlehttp/guzzle: ^6.2
- socialconnect/auth: ^1.0
- zendframework/zend-mvc: ^3.0
- zendframework/zend-servicemanager: ^3.0
- zendframework/zend-session: ^2.7 || ^3.0
- zendframework/zend-uri: ^2.5 || ^3.0
- zendframework/zend-view: ^2.7 || ^3.0
Requires (Dev)
- mockery/mockery: ^0.9.7
- phpunit/phpunit: ^5.7
This package is auto-updated.
Last update: 2024-09-23 09:35:21 UTC
README
使用 SocialConnect-Library 为您的 ZendFramework3-App 创建一个绝对轻量级的认证层
您可以使用所有 支持的社交网络登录 进行登录。网络和包含 id、名称、邮箱和语言的用户对象将存储在会话中。如果您已经在您的应用程序中有了社交网络用户,您可以使用这些用户进行用户授权。
需求
- SocialConnect-Library。这个库使用的是版本 3,目前还不稳定!
- Zend Framework3(嗯,显然,对吧?)
用法
-
在您的 application.conf 文件中,将模块添加到模块列表中
-
将文件
vendor/org_heigl/hybridauth/config/autoload/module-orgHeiglHybridAuth.local.php
复制到您的应用程序的config/autoload
目录,并按需修改。可能看起来像这样return [ 'OrgHeiglHybridAuth' => [ 'socialAuth' => [ 'redirectUri' => 'http://localhost:8080/authenticate/backend', 'provider' => [ 'twitter' => [ 'applicationId' => '', 'applicationSecret' => '', 'scope' => ['email'], ], 'github' => [ 'applicationId' => '', 'applicationSecret' => '', 'scope' => ['email'], ], ], ], 'session_name' => 'orgheiglhybridauth', 'backend' => array('Twitter'), // could also be ['Twitter', 'Facebook'] // 'link' => '<a class="hybridauth" href="%2$s">%1$s</a>', // Will be either inserted as first parameter into item or simply returned as complete entry // 'item' => '<li%2$s>%1$s</li>', // 'itemlist' => '<ul%2$s>%1$s</ul>', // 'logincontainer' => '<li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">%1$s<b class="caret"></b></a>%2$s</li>', // 'logoffcontainer' => '<li>%1$s</li>', // 'logoffstring' => 'Logout %1$s', // 'loginstring' => 'Login%1$s', // 'listAttribs' => null, // Will be inserted as 2nd parameter into item // 'itemAttribs' => null, // Will be inserted as 2nd parameter into itemlist ] ];
-
添加此代码片段以创建登录链接
<?php $provider = "Twitter"; echo $this->hybridauthinfo($provider); ?>
-
登录后,您可以按以下方式访问用户信息
$config = $this->getServiceLocator()->get('Config'); $config = $config['OrgHeiglHybridAuth']; $hybridAuth = new Hybridauth($config['hybrid_auth']); $token = $this->getServiceLocator()->get('OrgHeiglHybridAuthToken'); if (! $token->isAuthenticated()) { echo 'No user logged in'; } /** @var OrgHeiglHybridAuth\UserToken $user */ echo $token->getDisplayName(); // The name of the logged in user echo $token->getUID(); // The internal UID of the used service echo $token->getMail(); // The mail-address the service provides echo $token->getLanguage(); // The language the service provides for the user echo $token->getService() // Should print out the Name of the service provider.
安装
composer
最好使用 composer 安装此模块。为此,运行以下命令将库添加到您的应用程序
# Require the hybridauth-module
composer require org_heigl/hybridauth
如果您想使用多个认证提供程序,则应运行此命令
# Require the hybridauth-module
composer require org_heigl/hybridauth:dev-feature/multipleProviders
手动安装
您想走难路吗?当然您不想尝试 composer 吧?
那么去弄清楚吧。您可能想在大itter频道或 IRC(freenode)上提问,但请期待类似“使用 composer!”的回答
请注意,您可以选择下载库的 zip 文件,或者使用 git submodule 命令将库克隆到适当的文件夹中。您不应简单地使用 git clone <library> <target>
,因为这可能会干扰您本地的 git-repo(如果您在使用的话)。子模块方法使库更新更容易,但可能会因为子模块命令的局限性而带来很多麻烦!在这种情况下,我无法提供支持!或者,您可以在 github 上 fork 项目的代码。
示例实现。
在 https://hybridauth.heigl.org 上有一个示例实现 - 源代码在 github 上。