整体流程是 ,参照腾讯企业邮的对外开放api , 传递client_孩子营养早餐的做法id + client_cret就可以获取到access_token , 拿着access_token+ 用户的标识 , 去请求一个登陆地址 , 获取到登陆地址直接跳转过去就能登陆成功
1. 首先在管理后台 , 申请生成自己的client_id + client_cret
重置秘钥 , 停用秘钥都会使当前企业的旧秘钥和access_token失效
2. 通过自定义规则生成签名串
获取所有get传递的参数值 , 使用字典序排序 , 拼接在一起 ,拼接上自己的秘钥进行sha1加密 , 作为get参数signature
<?php//从企管后台获取到以下参数$client_cret="af0c7c2ac7b5687d6c4ed5e6a2a7e058780c1aac";$client_id="appdev.sinanet.com";//生成签名$_get['grant_type']='client_credentials';$_get['client_id']=$client_id;$_get['ts']=time();//秒数时间戳$args = array_values($_get);sort($args, sort_string);$args = implode($args);$sign = sha1($args . $client_cret);$尺子的英语_ge郑州特色美食t['signature']=$sign;//最终传递的get参数var_dump($_get);
3. 获取access_token接口
重新获取token会使旧的token失效
get /openapi/token?
grant_type=client_credentials&
client_id=appdev.sinanet.com&
ts=1587628159&
signature=ad90ca4f8395c679243c4264bd2159dd59a0f82b
{ "result": true, "errno": 0, "msg": "", "data": { "access_token": "e3ea1a0589快速记忆的方法3f5906893a37c51e4458bdb7361794", "expire_in": 7200 }}
4. 通过access_token + 用户标识 获取本企业内的员工登陆地址 , 登陆地址是一次性的 , 过期时间300秒
get /openapi/get_login_url?
access_token=e3ea1a05893团支书竞选发言f5906893a37c51e4458bdb7361794&
email=shihan2@xxxxx.com
{ "result": true, "errno": 0, "msg": "", "data": { "login_url": "http://xxx/cgi/openapi_login.php?ts=1587628586&authkey=7883171fa07d5a149ef5f8e4fd401c925286c2cf&email=shihan2@xxx.com", "expire_in": 300 }}
5.直接往登陆地址上跳 , 记录cookie ssion等身份信息 , 再跳到真正的系统
本文发布于:2023-04-08 12:51:34,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/f883b2fd3031d8d4833fb77ed19942f5.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:[PHP] 实现oauth下的单点登陆.doc
本文 PDF 下载地址:[PHP] 实现oauth下的单点登陆.pdf
留言与评论(共有 0 条评论) |