最近打算看看安卓端的第三方登录 有一个疑问: 验证第三方平台的账号密码后就可以得到AccessToken 服务器可以通过AccessToken来判断是哪个用户登录了。 我想问的是 第三方平台有没有提供一个接口让服务器来验证AccessToken的合法性? 没有的话总感觉有些不安全。总感觉谁都可以传这个AccessToken到服务器来模拟他人的登录。 一般情况下应用第三方登录,服务器是怎么处理的呢?
针对你说的模拟, 怎么模拟?你知道别人正确的openid
?貌似 openid
是针对每个站点独立的标识,且token
还有生命周期, 即使你拿你库里面的token+openid
去别人站上登录也登不上去吧。
@xuexb 我的意思是,服务器端在收到 token+openid 后是不是需要再验证一次token是否过期什么的? 如果不需要的话,服务器端只要接收相应的 openid 就等于登陆成功了是吗? 直接去查数据库如果有此openid就是老用户登陆,如果没有就常见新用户哦?
@sjfkai 不用吧, 我们是这样做的, 用户授权后会传给回调一个 code
码,然后后端通过 code
获取到 token
和openid
, 那个code
是有很短时间的存活率, 且必须通过TX验证, 然后回调中的openid
为用户标识, token
为密钥, 还有个expires_in
, 你可以在用户登录后更新下这个, 在发送接口(比如发说说) 前验证expires_in
时间是否过期… 即使你有openid
你也进不去啊,必须走code
这一关.
AccessToken肯定要验证不合法肯定获取不到任何信息,除非你使用第三方账号把别人的accessToken给记录下来,否则你是获取不到别人的accessToken的,有空看一下oauth2.0机制