目前设想的是为每一个用户生成一个uid,并绑定微信的openid和手机号,用户可使用微信oauth登录,或者使用手机号验证码的形式登录,后台记录uid, openid, mobile_number的对应关系。整个流程没有密码的概念。
基于以上的假设,如何设计一套安全的鉴权流程?求各位大神指点
基于以上的假设,如何设计一套安全的鉴权流程?求各位大神指点
1
zjmdp OP 如果基于token的授权体系,微信oauth登录后可以拿openid去换token,那手机总不能拿手机号把?不管拿openid和手机号换token,都不太安全。
|
2
abelyao Jan 9, 2015
在 APP 中加入 “使用微信登录” 就好咯。
至于手机号码,只有手机号码去登录肯定是不行的,如果我的朋友也在使用这个 APP 我知道他的手机号码,岂不是可以互相登录?除非是手机号码+短信验证码来登录,这样太蛋疼了 |
3
beordle Jan 9, 2015
@abelyao 不一定的,我們通過設備號和一些隨機參數可以設定一個虛擬的密碼,當然只有短信是最終的用戶驗證手段,為了避免每次都要短信驗證,我們可以:
把默認密碼保存,我們每次就驗證是否一致就好咯(當然你要基於 token) 只要每次短信驗證 相當於重置這些密碼就好 |
4
zjmdp OP |
5
beordle Jan 9, 2015
恩,不過token 一定要加上設備的id然後付個md5防止篡改
|