只知道现在的流行趋势都是使用oauth2.0去做webapi的验证,但是我还是有一些迷茫,求大神解答:
1.在自己的项目网站中使用ouath有什么意义吗,为什么不直接使用读取数据库的用户名和密码去进行验证。
2.比如通过豆瓣去获取QQ的权限登陆,这时候使用oauth是因为二者之间的不信任,所以这时候豆瓣想要访问QQ就要用户登录在豆瓣的账号去QQ的autho验证服务器去验证身份获取token,如果验证通过,这是不是就说明QQ的服务器也存在登陆豆瓣这人的信息,这样的话,把两个系统的数据库账号直接进行比较不可以吗,如果怕明文被获取也可以进行对称秘钥加密啊,为什么还要用autho的验证去做这件事。
3.如果是在当前平台上用户只需要一次登录就可以获取token去访问平台其他子系统,也就是单点登录的话,我用用户名密码登陆后保存一个加密的cookie或者session去其他子系统验证信息确定是否可以登陆就好了,为什么还要用oauth验证?
求解答、。。
1.在自己的项目网站中使用ouath有什么意义吗,为什么不直接使用读取数据库的用户名和密码去进行验证。
===》》
你自己做了个京东,按理说上你的京东买东西的人应该在你网站里注册,然后下单结算。
问题是,很多人(比如我)很不喜欢到各个网站理注册。
这时候,我直接拿我的QQ或者微信或者微博登录你的网站。
你说,这种搞法有意义没有?
但是在分布式环境下或者跨域共享session的时候也是直接对比吗..这样是不是技术上太low了或者有其它问题?总觉得现在的大型网站似乎不是很单纯的这样干的吧,我有点蒙。。
@洛晨随风: 不关session什么事。
技术本身不存在low或者不low的问题,只有适用或者不适用的问题。
如果你的API是要被公开出来,供多方调用的(A公司的X应用,B公司的Y应用,ZHANGSAN使用浏览器来调用它,李四使用安卓或者winform来调用它),那么OAuth是目前业界通用的解决方案。
@西漠以西: 懂了,oauth最终其实是服务于对外提供的接口的目的以及做单点登录所使用,一般正常的登录还是通过用户信息存储到cookie然后进行cookie的form验证,包括.net core 2这样的框架,之前一直担心基于cookie的验证模式会出现什么隐患的,所以可能想了许多
当然可以自己弄一套鉴权授权的东西.没问题的.
这些现成的只是更完善.