studiokaa / amoclient
amologin 客户端
Requires
- guzzlehttp/guzzle: ^7.0
- lcobucci/jwt: 4.0.4
README
一个用于与 amologin OpenID 连接服务器一起使用的 Laravel 5(及以上)包。现在使用 curio.codes!
安装
!! 请确保您的应用使用 https,以防止意外暴露令牌、密钥等。
要在项目中使用 amoclient
-
在您的 Laravel 项目中运行:
composer require studiokaa/amoclient
-
在您的 .env 文件中设置以下密钥
AMO_CLIENT_ID
AMO_CLIENT_SECRET
AMO_API_LOG
(可选)- 默认:
no
- 设置为
yes
以使 Amoclient 将所有 access_tokens 和 refresh_tokens 的使用记录到默认日志通道。
- 默认:
AMO_APP_FOR
(可选)- 默认:
teachers
- 此密钥确定学生是否可以登录您的应用。
- 可能是以下之一
all
:任何人都可以登录,您可以使用守卫或中间件来限制访问。teachers
:学生将完全被阻止,当他们尝试登录时,不会创建任何用户。
- 默认:
AMO_USE_MIGRATION
(可选)- 默认:
yes
- 设置为
no
以使用您自己的迁移而不是此包提供的 users 迁移。
- 默认:
AMO_SSL_VERIFYPEER
(可选)- 默认:
yes
- 设置为
no
以禁用 SSL 验证。这仅在开发期间和仅在受信任的网络中推荐。
- 默认:
-
修改您的 User 模型并添加行:
public $incrementing = false;
-
(推荐) 从您的应用中删除任何默认的用户迁移,因为 Amoclient 将与之冲突。请不要删除用户模型。如果您想继续使用自己的迁移,在您的 .env 文件中设置:
AMO_USE_MIGRATION=no
-
最后,运行
php artisan migrate
。
用法
登录
将您的用户重定向到 http://yoursite/amoclient/redirect
,这将发送您的用户到 amologin 进行身份验证。
您应该有一个命名路由,该路由将按钮或直接重定向到 /amoclient/redirect
提供给您的用户。
示例:
Route::get('/login', function(){
return redirect('/amoclient/redirect');
})->name('login');
捕获登录后的重定向
登录成功后,Amoclient 将您重定向到 /amoclient/ready
。您可以在应用程序的 routes/web.php
文件中定义一个路由来处理此操作。
示例:
Route::get('/amoclient/ready', function(){
return redirect('/educations');
})
登出
将您的用户发送到 /amoclient/logout
。 请注意:目前无法完成真正的登出。如果您从应用中登出,但仍然登录到 amologin-服务器,这将没有任何效果。
Laravel 的 make:auth
不要与 Amoclient 一起使用。
AmoAPI
除了作为中心登录服务器外,login.amo.rocks 还公开了一个 API。请注意,此 API 目前尚未文档化,尽管有一些选项可以探索该 API。
- 参阅 amologin 的 routes/api.php 文件。
- 在 apitest.amo.rocks 上进行测试。
Amoclient API 接口
通过 Amoclient 调用 API 的示例;
namespace App\Http\Controllers;
use \StudioKaa\Amoclient\Facades\AmoAPI;
class MyController extends Controller
{
//This method is protected by the auth-middleware
public function index()
{
$users = AmoAPI::get('users');
return view('users.index')->with(compact('users'));
}
}
已知问题: 目前 AmoAPI 类没有检查令牌是否过期,而是在您使用它时随时刷新它。
AmoAPI::get($endpoint)
- 执行类似
GET https://api.amo.rocks/$endpoint
的 HTTP 请求。 - 此方法依赖于用户通过 amoclient 首先进行身份验证。请仅在受 auth 中间件保护的路由和/或控制器中调用此方法。
- 返回 Laravel-collection
贡献
- 将此存储库克隆到您的设备上
- 在此存储库的根目录中运行
composer install
- 创建一个测试项目,在其中使用此包(遵循上面的使用说明)
- 使用以下内容添加包到你的composer.json中
"repositories": [ { "type": "path", "url": "../amoclient" } ],
- 注意:
../amoclient
应指向你克隆此包的位置
- 注意:
- 在测试项目中运行
composer require "studiokaa/amoclient @dev"
现在您可以测试和修改此包。更改将立即反映在测试项目中。