TP 3.2 一键登录
2020年6月16日php端接受第三登录数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/** * 第三方登录 */ public function otherLogin() { $data = I('get.');unset($data['secret']); $secret = I('secret'); $publicKey = 'fzjaYZBcaTV7xzCUYqS4lMba10b7S6X9H9cYwWaZ89yTc6vEmupFjyUnkRdBbYctDKHcIf3zh0OJbqIQIDAQAB'; //双方知道的公共key if (md5(implode($data) . $publicKey) != $secret) { $this->error('数据错误','/home/index/index'); } var_dump('数据正确,在这里你可以写登录逻辑了'); } |
php生成第三方登录链接
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
/** * 登录链接 */ public function loginLink() { /** * 这里是定义的是参考数据,可按照需求调整,但必须是一位数组,最好不要超过get提交大小1024字节 */ $data['user_name'] = '您1的数据'; $data['level_name'] = '您的1数据'; $data['user_info'] = '您的1数据'; //双方知道的公钥,如果不更改应该就是这个秘钥了 $publicKey = 'fzjaYZBcaTV7xzCUYqS4lMba10b7S6X9H9cYwWaZ89yTc6vEmupFjyUnkRdBbYctDKHcIf3zh0OJbqIQIDAQAB'; //将数组转换为字符串+publicKey计算出一个秘钥 $data['secret'] = md5(implode($data) . $publicKey); //将链接放入适当位置中,用户点击即可登录 echo 'http://www.fangtr.cn/home/index/otherLogin?' . http_build_query($data); } |
nodejs生成第三方登录链接
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
/** * 需要安装两个包 * npm install md5-node * npm install qs */ const qs = require('qs'); const md5 = require('md5-node'); var data = {'user_name': '数据类', 'user_info': '数据类', 'level_name': '数据类'}; var publicKey = 'fzjaYZBcaTV7xzCUYqS4lMba10b7S6X9H9cYwWaZ89yTc6vEmupFjyUnkRdBbYctDKHcIf3zh0OJbqIQIDAQAB'; data.secret = md5( Object.values(data).join('')+publicKey); console.log('http://www.fangtr.cn/home/index/otherLogin?' + qs.stringify(data)); |