应用的第三方认证,以及一方认证,不谈技术细节,只谈思路
请教一个第三方认证的解决思路
前提:
有一个应用,它已经有一个自己的很标准的oauth2的认证服务, 同时它希望能够支持第三方的(比如微信)的oauth2登录。
场景:
用户在应用上用第三方的形式完成了登录。使用的模式为 Authoration code grant 模式。按照oauth的流程,最后应用端一定能够拿到第三方(微信)的一个access_token,并用这个access_token拿到用户在微信端的用户名,头像等等信息。完成了这个第三方的登录以后,应用会跳转到自己的页面上,接着要访问应用自己的api接口。但是这时候,应用还没有去拿自己的那个oauth提供的access_token
问题:
1)按正常的项目实际中的情况, 应用是不是要再去自己的那个oauth里再去认证一次,拿自己oauth的token?才能调用自己的api
2)如果上面这种成立,那么再去取自己的oauth token的时候,如果再一次弹出来输入用户名密码的页面怎么办?
另外我自己一直有一个理解,不知道对不对。
API能不能有权限访问完全是看access_token的,token合法就是可以调用。 这个和业务场景里的角色权限是没有关系的。即使用户什么权限也没有只要他能成功的登录到一个app里拿到合法token,那他就是可以调用这个oauth管理的所有接口的。
权限这些东西只用来控制页面显示和操作button,是从另一个维度去控制。