studiokaa/amoclient

amologin 客户端

v3.3.0 2023-12-15 14:34 UTC

README

一个用于与 amologin OpenID 连接服务器一起使用的 Laravel 5(及以上)包。现在使用 curio.codes!

安装

!! 请确保您的应用使用 https,以防止意外暴露令牌、密钥等。

要在项目中使用 amoclient

  1. 在您的 Laravel 项目中运行:composer require studiokaa/amoclient

  2. 在您的 .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 验证。这仅在开发期间和仅在受信任的网络中推荐。
  3. 修改您的 User 模型并添加行:public $incrementing = false;

  4. (推荐) 从您的应用中删除任何默认的用户迁移,因为 Amoclient 将与之冲突。请不要删除用户模型。如果您想继续使用自己的迁移,在您的 .env 文件中设置:AMO_USE_MIGRATION=no

  5. 最后,运行 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。

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

贡献

  1. 将此存储库克隆到您的设备上
  2. 在此存储库的根目录中运行 composer install
  3. 创建一个测试项目,在其中使用此包(遵循上面的使用说明
  4. 使用以下内容添加包到你的composer.json中
    	"repositories": [
    		{
    			"type": "path",
    			"url": "../amoclient"
    		}
    	],
    • 注意: ../amoclient应指向你克隆此包的位置
  5. 在测试项目中运行composer require "studiokaa/amoclient @dev"

现在您可以测试和修改此包。更改将立即反映在测试项目中。