1、Appsecret 是应用接口使用密钥,泄漏后将可能导致应用数据泄漏、应用的用户数据泄漏等高风险后果;存储在客户端,极有可能被恶意窃取(如反编译获取 Appsecret ); 2、access_token 为用户授权第三方应用发起接口调用的凭证(相当于用户登录态),存储在客户端,可能出现恶意获取 access_token 后导致的用户数据泄漏、用户微信相关接口功能被恶意发起等行为; 3、refresh_token 为用户授权第三方应用的长效凭证,仅用于刷新 access_token,但泄漏后相当于 access_token 泄漏,风险同上。
建议将 Appsecret、用户数据(如 access_token )放在 App 云端服务器,由云端中转接口调用请求。
微信给出了这样的建议,网上很多资料都是直接放在 APP 里这种不安全的做法, 请问大家都是如何安全存储的,由云端中转接口调用请求又需要怎样的使用方式呢?
1
mytsing520 2017-06-01 13:20:41 +08:00
APP 发起请求到服务器,服务器和微信服务器之间用 API 调用,返回结果到 APP,而不是 APP 直接向微信服务器调用
|
2
itroad 2017-06-01 14:15:53 +08:00
其实说白了,就是微信的接口请求数据交给你的服务端,再由服务端接口给 app 客户端,这样保证了秘钥不暴露.而客户端则是非常不安全的,不应客户端直接发起向微信服务调用.
|
3
Returnear 2017-06-01 14:30:33 +08:00
这么说吧,你爸给你和你的十个兄弟发生活费。
第一种是你爸用自己的工资卡给你们的账户转账。 第二种是你爸把自己工资卡复制了十份,然后把密码也告诉你们,你们自己取。 你说哪种方式安全 |
4
xiaoc19 OP @mytsing520
@itroad @Returnear 你们说的这些我都懂,微信说的很明白了,但是到具体, 微信能使用 code 获取 access_token, QQ 登录是不是不能这样做? 成熟的 APP 都是怎么做的 |
5
caidaofff 2017-06-01 16:44:37 +08:00
public function getOpenId(){
//$url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code '; $code =$_GET['code']; if(empty($code)){ die; } $appId = 'wx1234123412341234'; $secret = '3434212331234123235345'; $s = 'CODE'; $result = file_get_contents('https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appId.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code'); 这个扔后端,前端 js 将 code 送进来,返回的就是 access_token |
6
caidaofff 2017-06-01 16:47:15 +08:00
其实一楼已经说的很清楚了,我这个是具体写法,随手写的,错误自检哈
|