前置知识:微信授权登录过程和相关名词,access_token、code、openid等;
微信授权登录,大都是拉起微信授权页面,用户同意授权后,再跳到自己应用的绑定手机页面进行绑定手机的操作,绑定之后自动登录,会话就像不会过期一样,或者是过期以后再次点一次授权按钮即可。不用像以前一样,每次都用密码或验证码登录,让用户再做繁琐的登录操作。
如图,第一次微信授权还好,因为没有绑定,所以需要手机验证码来确保是本人授权绑定的。但是已经绑定的,就要直接做无感登录。那么问题就来了,不用频繁的验证码和密码,不用和用户产生交互,怎么保障绑定后的无感登录不是伪装的?首先看无感登录需要元素:手机号和微信用户标识openid。手机号肯定是暴露在外的,那如果openid也暴露的话,所有知道用户手机号和openid的人都可以登录,是不安全的。确保openid不暴露,可以有以下的操作:
(1)可以对其进行RSA加密传输,到后台再解密;
(2)微信回调返回code,直接作为无感登录入参,传到后台,在后台加上appId和appSerect获取openid;
那么延申到其他恒定的、交互频密的、有关登录等敏感操作的字段数据,要保障其安全,手段有哪些?从什么方面去考虑呢?
(1)app端混淆