uspdev/senhaunica

用于访问唯一密码的库

2.0.2 2023-05-09 13:46 UTC

This package is auto-updated.

Last update: 2024-09-09 16:42:32 UTC


README

用于在PHP中集成唯一密码的通用库

变更日志

2023年3月5日:版本2.0

  • 新版本现在使用league/oauth1-client库
  • 兼容php 8
  • 调用现在是静态的

依赖项

  • league/oauth1-client库
  • PHP >=7.1 | >=8.0

安装

如果您尚未使用composer的项目,开始使用它是一个好主意。

composer require uspdev/senhaunica:2.0

使用

此库已在debian 10和ubuntu 22.04上进行了测试。

可以使用在https://uspdigital.usp.br/adminws/oauthConsumidorAcessar上注册的callback_id通过多个应用程序使用令牌

您应创建一个路由(例如/loginusp)并使用以下代码

require_once __DIR__.'/vendor/autoload.php';
session_start();

use Uspdev\Senhaunica\Senhaunica;

$clientCredentials = [
    'identifier' => 'identificacao',
    'secret' => 'chave-secreta',
    'callback_id' => 0,
];

Senhaunica::login($clientCredentials);

header('Location:../');
exit;

您可以选择通过env传递参数

require_once __DIR__.'/vendor/autoload.php';
session_start();

use Uspdev\Senhaunica\Senhaunica;

putenv('SENHAUNICA_KEY=');
putenv('SENHAUNICA_SECRET=');
putenv('SENHAUNICA_CALLBACK_ID=');

Senhaunica::login();

header('Location:../');
exit;

认证用户的详细信息将在$_SESSION['oauth_user']

它也可以使用以下方式恢复

$user = Uspdev\Senhaunica\Senhaunica::getUserDetail();

它包含一个包含所有从oauth返回的数据的数组。示例

[loginUsuario] => 111111
[nomeUsuario] => Jose Maria da Silva
[tipoUsuario] => I
[emailPrincipalUsuario] => email@usp.br
[emailAlternativoUsuario] => email-alternativo@gmail.com
[emailUspUsuario] => outro-email@usp.br
[numeroTelefoneFormatado] => (0xx16)1234-5678 - ramal USP: 345678
[wsuserid] => Iasdkughacsdghçalekhagsghaegawe
[vinculo] => Array
    (
        [0] => Array
            (
                [tipoVinculo] => SERVIDOR
                [codigoSetor] => 000
                [nomeAbreviadoSetor] => ABC
                [nomeSetor] => Meu setor
                [codigoUnidade] => 18
                [siglaUnidade] => EESC
                [nomeUnidade] => Escola de Engenharia de São Carlos
                [nomeVinculo] => Servidor
                [nomeAbreviadoFuncao] => Minha função
                [tipoFuncao] => Informática
            )

    )

此外,如果您想验证登录关联,请使用以下代码。它将返回在提供的列表中找到的第一个关联。您可以使用任何数组中的变量代替tipoVinculo

$campo = 'tipoVinculo';
$valores = ['SERVIDOR','OUTRO_VINCULO', '...'];
$vinculo = Uspdev\Senhaunica\Senhaunica::obterVinculo($campo, $valores);