ikkez / f3-opauth
PHP Fat-Free 框架的 Opauth 插件
v1.0.1
2019-05-02 07:00 UTC
This package is auto-updated.
Last update: 2024-09-06 05:55:22 UTC
README
这是一个用于 PHP Fat-Free 框架轻松集成 Opauth 的插件。[Opauth](http://opauth.org/)。
安装
- A: 使用 composer
composer require ikkez/f3-opauth
- 或 B: 将 opauth 文件夹放入您的库或自动加载目录中,并调整自动加载路径
// adjust the autoloader $f3->set('AUTOLOAD','lib/opauth/');
配置
- 您需要为您的服务配置您想要使用的每个策略。您可以在每个策略文件夹的readme文件中找到如何操作的说明。基本上,您只需要在每个策略的提供者上创建一些OAuth消费者应用程序,并将密钥/密钥凭证添加到配置文件中。Google、Facebook、Twitter 和 Github 已经包含在这里,因此您可以直接跳过这些策略readme文件中的“安装”部分。如果您需要更多OAuth提供者,请查看策略列表。
- 此插件包含自己的配置文件。它用于向Opauth提供所有策略配置,以及一些F3路由设置。您至少需要更改security_salt和您喜欢的策略密钥和密钥。
- 将授权集成到您现有的登录过程中。
基本用法
// in your index.php $f3 = \Base::instance(); // load opauth config (allow token resolve) $f3->config('lib/opauth/opauth.ini', TRUE); // init with config $opauth = OpauthBridge::instance($f3->opauth); // define login handler $opauth->onSuccess(function($data){ header('Content-Type: text'); echo 'User successfully authenticated.'."\n"; print_r($data['info']); }); // define error handler $opauth->onAbort(function($data){ header('Content-Type: text'); echo 'Auth request was canceled.'."\n"; print_r($data); }); $f3->run();
事件处理器也可以是可调用的字符串
$opauth->onSuccess('\Controller\User->socialLogin');
要登录,调用一个策略,例如http://domain.com/auth/facebook
。
应用程序流程
- 好的,您将一个社交登录按钮放置在您的常规登录表单附近,将用户发送到登录策略,例如
http://domain.com/auth/facebook
。 - 当用户在一个提供者处进行身份验证后,用户会被发送回一个回调路由。回调检查请求和身份验证是否有效。然后,当授权成功时,调用
onSuccess
处理器,并提供一些从给定策略中提供的数据。 - 您可以使用这些数据来提取用户名、访问令牌、电子邮件或最适合该策略的其他任何内容。每个策略都提供不同的数据,因此根据您的应用程序需求,您可能需要考虑在您的应用程序中添加一些回退机制(例如,您可能无法从 Twitter 或 Facebook 获取电子邮件)。您可以使用这些数据在您的用户数据库中查找匹配项。根据结果,您可以开始登录或注册控制器。
- 在注册过程中,您可能希望将策略身份验证数据中的唯一内容保存到用户表中(例如电子邮件或
$f3->hash
多个字段,如用户名、令牌、ID)- 这样您可以知道谁已经激活了社交身份验证提供者,并有机会根据此信息加载用户。 - 在注册和在登录后,您可能在控制器中保存一个活动的用户会话来记住您的已登录用户。
- 当会话过期或用户需要从其他设备重新登录时,请将他发送到身份验证策略路由(例如
auth/facebook
- 大多数提供者在身份验证成功后立即重定向),现在您可以在用户表中找到他,具有已激活的社交身份验证并直接登录他。
这当然只是实现的一个想法。一些提供者还返回用于与其第三方API进行进一步通信的令牌(例如,用于获取更多配置文件数据或更新令牌),但这不是此插件将要处理的内容。有关更多信息,请参阅策略文档。
演示
许可协议
GPLv3