1 Star 0 Fork 0

berlin75 / yshopsso

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

1、生成公钥私钥

控制器中调用以下方法即可生成公钥私钥对,请妥善保存

(new \lib\SSO)->createKey();

2、获取验证码

向授权中心获取验证码,request_domain参数必须是当前ip对应的域名,否则验证无法通过 将当前返回的code字符串保存到项目根目录的ssocode.txt文件中,确保该文件可访问,再设置公钥

POST {{url}}/index/getCode HTTP/1.1
content-type: application/json

{
    "request_domain": "http://www.example.com"
}

3、设置公钥

向授权中心设置公钥

POST {{url}}/index/setPublicKey HTTP/1.1
content-type: application/json

{
    "request_domain": "http://www.example.com",
    "public_key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDR3ZA/qbMfsyvT0vK1d3K3R01TaIurhXjYpwYc+Dv5jOCFmhYpfEMu4p3XONLszQrEf1Lj9wJvodMHQ1Eg3rt2Hmx/J2sUCxjp9rvI4qqH6dstmTlZf1FdJs4TUawhD0yBJV6NxI+sob81bVZj3IjLrhRjf5LCVxbXh5jxBr66bwID"
}

4、查看公钥

查看在授权中心设置的公钥

POST {{url}}/index/getPublicKey HTTP/1.1
content-type: application/json

{
    "request_domain": "http://www.example.com"
}

5、获取加密数据ticket

domain参数为目标网站域名地址 account参数为账号

POST {{url}}/index/getTicket HTTP/1.1
content-type: application/json

{
    "request_domain": "http://www.example.com",
    "domain": "http://www.target.com",
    "account": "15112341234"
}

返回值示例

{
    "code":0,
    "msg":"请求成功",
    "data":{
        "url":"http://www.target.com?ticket=TSVBOCU4QSUxOCVBNiVBQlIlRTIlRTMlOTMlMDglMUR0VCVDNVAlQjAlRjklMTQlMjMlRkMlRkIlQTYlRTklOTYlMDZPJUU4JUI3JTBBJTNCJUVEbSVBMiUyNCUyMSVGNSU1QyUxMyU4MkslQzMlQjQlQ0MlQTglOUYlRUYlNUIlQzglQUElRDc5WSVBQk8lRkElQzclMEUlQTQlRDElQzYlMUJHJTg1JTBDJUIyJTFEWUQlQjQlMjUlMDglQTglRTAlNUJDQSVGMyU4QiUyNSUxQiVGQSVCNmVhNiUxMCUxRlJpJUM3JUJGJTJDJUU2JUE2NyUxQyslRTYlQTglOEYlQTclRDIlMjQlRUElMTklMDYlQTQlM0NJJTFDJTlBJTFCJTdDJTVCdCVCNyVEN0clNUIlODZfXyUwQSVGNFQlQ0JT"
    },
    "time":"2024-01-20 09:48:13"
}

http://www.target.com使用私钥解密data.url中ticket参数,得到account账户信息和time签发时间

$private_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$result = (new \lib\SSO('', $private_key))->privateDecrypt(input('ticket'));
$info = json_decode($result, true);

$info为:
{
    "account":"15107384435",
    "time":1705715293           // 签发时间
}

空文件

简介

暂无描述 展开 收起
PHP 等 3 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/berlin75/yshopsso.git
git@gitee.com:berlin75/yshopsso.git
berlin75
yshopsso
yshopsso
master

搜索帮助