有个关于 oauth2.0 的问题,我有一个 A公司的 app,里面嵌套一个 B公司 h5 页面,其中 h5 页面要用到A公司 app的用户信息,经过 oauth2.0 拿到App 的 access_token 后,理论上他能调用 A公司app 的全部接口(对于A公司后端来说就是一个普通的用户的token),这个可以预防吗,要怎么限制做到颁发给 A公司的 access_token 只能访问特定的接口,而不能访问系统的其他接口呢
有考虑过 scope,但是 scope 我感觉上只是用户是否赋予 h5 页面 App 的可供调用接口里面的接口是否都授权。打个比喻 APP 提供给第三方公司调用的就三个接口,【获取手机号,获取用户真实姓名,获取用户身份证】其他接口都不可以调用,其中这三个接口 h5 都不是随便可以调用,而是要经过用户进行确认,确认后才可以调用,是做这个功能。但是关于 APP 如何控制第三方公司其他接口都不可以调用,只能调用【获取手机号,获取用户真实姓名,获取用户身份证】接口,是不是要另外做逻辑进行隔离。即控制h5能调用多少个 APP 接口是一回事,而用户是否授权其中某几个接口给 h5 调用,又是另外一回事了。我的理解是否正确呢
可以用scope 来做的,请求的时候scope 不同,如果用户一点同意了这些scope 的请求。那么就会发放不同权限的access_token。这时候,client 使用这个用户的access_token 就能请求到资源服务器的各种接口,资源服务器依据access_token 中的不容权限选择放行与否。