isg/thinkific-sso

此包已被废弃,不再维护。未建议替代包。

一个简单的构建器,用于帮助创建thinkific的单点登录(SSO)URI。

1.2.1 2017-09-07 14:00 UTC

This package is auto-updated.

Last update: 2020-07-20 17:09:15 UTC


README

https://isg.codebasehq.com/projects/other-associated-projects/repositories/thinkific-sso/tree/master

一个简单的构建器,用于帮助创建thinkific的单点登录(SSO)URI。

此包非官方,也不与thinkific服务相关联。

要求

  • PHP 5.5+
  • ext_openssl

使用

<?php
use Isg\ThinkificSSO\Builder;

$builder = new Builder(new \Lcobucci\JWT\Builder());

// Required fields.
$builder->setApiKey('1234567890'); // Your thinkific API key.
$builder->setSchool('myschool'); // e.g. myschool.thinkific.com
$builder->setId('12345678'); // A unique ID string for this request.
$builder->setEmail('fake@email.com'); // The user's email address.
$builder->setName('John', 'Smith'); // The user's first and last name.

// Optional fields.
$builder->setExternalId('my-external-id'); // An ID reference of the customer for your software.
$builder->setReturnUrl('https://mywebsite.com/training-return-url'); // Return URL on successful authentication.

// Optional fields, usable in the version 2 JWT endpoint only.
$builder->setBio('A pretty average guy.'); // A quick bio for the user.
$builder->setPhoneNumber('+441910000000'); // The user's contact number.
$builder->setCompany('John Smithson Ltd.'); // The company name the user works for.
$builder->setWebsite('https://john-smith.co.uk'); // The website associated with the user.
$builder->setTimezone('GMT'); // The timezone code of the user.
$builder->setErrorUrl('https://mywebsite.com/error-redirect-url'); // Error URL on authentication failure.

// Generate the single sign on URI.
$result = $builder->generateUri();

有关参数的更多信息,请参阅 http://help.thinkific.com/support/solutions/articles/221622-sso-v2-automatically-sign-in-from-your-own-website

SSO 错误处理(仅限v2)

当用户被重定向到您的错误页面时,您可以使用 Isg\ThinkificSSO\AuthResult 类来检查错误

<?php

$result = new \Isg\ThinkificSSO\AuthResult($_GET);

if ($result->hasError()) {
   echo $result->getMessage();
   error_log(sprintf('[%s] %s', $result->getOriginalErrorCode(), $result->getOriginalErrorMessage()));
}

// TODO

  • AuthResult 的测试
  • Builder 的更完善的测试