doing/sign

通过公钥、私钥和appId进行加密、解密和签名的一种加密类:主要可以运用到接口调用授权中

dev-master 2018-03-15 03:22 UTC

This package is auto-updated.

Last update: 2024-09-15 12:06:58 UTC


README

描述一:仅用于签名

通过公钥、私钥和appId进行加密、解密和签名的一种加密类:主要可以运用到接口调用授权中

安装命令

composer require doing/sign dev-master

使用步骤

前提:在服务端调用makeKey和doSign时php文件头部已引用命名空间use Sign\Sign;

1.管理人员在SignConfig.php配置类常量APPID($appId)最好是英文单词

2.服务端调用以下生成器 生成公钥和私钥

$keys= MakeKey::instance()->makeKey();
print_r($keys);die;
/* array(2) {
["privateKey"] => string(3) "abc"
["publicKey"] => string(3) "cde"
}*/
//把生成的privateKey私钥放在SignConfig.php类的常量PRIVATEKEY($privateKey)中
//把生成的publicKey公钥和把配置好的appId给调用接口的开发人员(使用者)

3.签名和验证

3.1使用者

//使用者配置好$publicKey和$appId 调用服务器写的认证签名接口,把参数pulicKey和appId通过header头的方式传递去服务器(根据需求自行封装认证接口方法)
$publicKey = 'cde';
$appId = 'appid';

3.2服务器端

//通过读取3.1中header中的参数publicKey和appId调用以下方法验证
$res = Sign::instance()->doSign($publicKey,$appId);
print_r($res);die;

4.验证结果

$res验证通过返回字符串True,验证失败返回字符串False 并返给3.1

5.使用者在3.1中收到返回结果根据项目需求写后续操作

描述二:签名+授权(仅能在thinkphp5.0上使用)

使用步骤

前提:在服务端调用getCode和check时php文件头部已引用命名空间use Sign\OAuth;

1 在使用之前须操作描述一中的步骤1和2配置号appId以及生成并配置好对应的公钥和私钥

2 调用接口者获取一次性code码

2.1 调用接口者通过在header上携带参数公钥和appId去调服务器对应接口去获取一次性code码

2.2 服务器通过header获取对应参数生成一次性code码并返回

 $code = OAuth::instance()->getCode($publicKey, $appId);

3 调用接口者获取access_token

3.1 调用接口者通过携带参数code请求相应接口获取access_token

3.2 服务器获取到code参数并去生成access_token 并返回

 $accessToken = OAuth::instance()->getAccessToken($code);

4 调用API的权限验证

4.1 调用接口者每次在调用项目API时header上都要携带access_token参数

4.2 服务器每次相应请求时都要去判断access_toen是否有权限

//$res 验证通过为true其他情况全部已抛出异常的形式处理(自行封装)
$res = OAuth::instance()->check();
当返回为true时,服务器去调客户端请求的对应API接口