Code Monkey home page Code Monkey logo

sign's Introduction

说明

描述一:仅用于签名

通过公钥、私钥和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接口

sign's People

Contributors

doing0 avatar

Watchers

Ugia avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.