时间:2021-05-25
最近在重构公司以前产品的前端代码,摈弃了以前的session-cookie鉴权方式,采用token鉴权,忙里偷闲觉得有必要对几种常见的鉴权方式整理一下。
目前我们常用的鉴权有四种:
一.HTTP Basic Authentication
这种授权方式是浏览器遵守http协议实现的基本授权方式,HTTP协议进行通信的过程中,HTTP协议定义了基本认证认证允许HTTP服务器对客户端进行用户身份证的方法。
认证过程:
1. 客户端向服务器请求数据,请求的内容可能是一个网页或者是一个ajax异步请求,此时,假设客户端尚未被验证,则客户端提供如下请求至服务器:
Get /index.html HTTP/1.0
Host:/oauth2.0/show?which=Login&display=pc&response_type=code&client_id=100270989&redirect_uri=https://passport.csdn.net/account/login?oauth_provider=QQProvider&state=test
这个url地址我们可以看见Auth2.0常见的几个参数:
response_type,返回类型
client_id,第三方应用id,由授权服务器(qq)在第三方应用提交时颁发给第三方应用。
redirect_uri,登陆成功重定向页面
oauth_provider,第三方授权提供方
state,由第三方应用给出的随机码
第二步. 返回用户凭证(code),并返回一个凭证(code),当用户点击授权并登陆后,授权服务器将生成一个用户凭证(code)。这个用户凭证会附加在重定向的地址redirect_uri的后面
https://passport.csdn.net/account/login?code=9e3efa6cea739f9aaab2&state=XXX
第3步. 请求授权服务器授权:
经过第二部获取code后后面的工作就可以交给后台去处理的,和用户的交互就结束了。接下来我的需要获取Access Token,我们需要用他来向授权服务器获取用户信息等资源。
第三方应用后台通过第二步的凭证(code)向授权服务器请求Access Token,这时候需要以下几个信息:
第四步. 授权服务器同意授权后,返回一个资源访问的凭证(Access Token)。
第五步. 第三方应用通过第四步的凭证(Access Token)向资源服务器请求相关资源。
第六步. 资源服务器验证凭证(Access Token)通过后,将第三方应用请求的资源返回。
从用户角度来说,第三方授权可以让我们快速的登陆应用,无需进行繁琐的注册,同时不用记住各种账号密码。只需要记住自己常用的几个账号就ok了。
从产品经理的角度来所,这种授权方式提高用户的体验满意度。另一方面可以获取更多的用户。
总结:
授权方式多种多样,主要还是要取决于我们对于产品的定位。如果我们的产品只是在企业内部使用,token和session就可以满足我们的需求,如果是面向互联网的大众用户,那么第三方授权在用户体验度上会有一个很大的提升。
还是那句话,上面可能有很多‘通假字'勿怪,我写作的目的一方面是希望和大家分享我掌握的点点滴滴,另一方面也是梳理一下掌握的知识。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
踩坑Axios提交form表单几种格式前后端分离的开发前后端,前端使用的vue,后端的安全模块使用的SpringSecurity,使用postman测试后端的权
引子博客的后台管理页面需要有登录系统,所以考虑做一下路由鉴权,实现方式也是Nuxt官网给出栗子来改写,顺便也将前后端路由给统一了。路由拦截前端方面主要通过利用N
前后端分离开发方式前端拥有更高的控制权随着前端框架技术的飞速发展,Router这个概念也被迅速普及到前端项目中,在早期前后的没有分离的时期下,并没有明确的路由概
路由器上注册灯一直闪有以下几种原因: 1、鉴权码与网络运营商不匹配 造成这种情况可能是由于,光猫中的鉴权码与网络运营商的服务器不匹配(比如由于误操作将光猫复
前后端分离实现方式: 1、前后端分离的概念就是“调接口与前端展示数据跟数据交互”,后端给前端专门写接口,至于数据格式自己定,如果处理的好未必一定说是要用jso