当前位置: 首页 > news >正文

网站制作及管理教程官方网站建设条件

网站制作及管理教程,官方网站建设条件,公司网站备案有什么用,苏州网站排名优化价格【导读】JWT认证方式目前已被广泛使用#xff0c;一直以来我们将token放在请求头中的Authorization中#xff0c;若通过此种方式#xff0c;一旦token被恶意窃取#xff0c;攻击者可肆意对用户可访问资源进行任意索取我们大多都是通过登录成功后#xff0c;响应AccessToke… 【导读】JWT认证方式目前已被广泛使用一直以来我们将token放在请求头中的Authorization中若通过此种方式一旦token被恶意窃取攻击者可肆意对用户可访问资源进行任意索取我们大多都是通过登录成功后响应AccessToken然后由前端将token存储在相关Storage中然后每次将其放请求头而认证请求由于token是极其敏感信息所以我们不能将其交由前端去处理而应由后台获取对前端不可见对安全有较高要求的平台我们通过Http Only Cookie来解决token恶意窃取问题Http Only CookieHttp Only Cookie简言之则是将相关信息响应时存储在Cookie中而客户端脚本无法访问每次请求时则将自动携带所有信息到服务器。例如京东存储相关信息接下来我们看看在.NET Core中如何将AccessToken以Http Only方式存储在Cookie中[AllowAnonymous] [HttpGet(api/test/get)] public IActionResult Get() {Response.Cookies.Append(x-access-token, GenerateToken(),new CookieOptions(){Path  /,HttpOnly  true});return Ok(); }如上我们模拟登录成功并不返回AccessToken而是将其写入到响应头中上述Cookie选项HttpOnly为true即表示客户端脚本不可访问此时我们来访问如下需认证接口[HttpGet(api/test/say)] public string Say() {return Hello World; }用过JWT的童鞋都知道标准模式则是将AccessToken写入到Authorization中即请求头【Authorization: Bearer ......】那么上述是如何认证成功而请求到接口的呢当我们添加JWT认证时每次请求在其对应事件OnMessageReceived中将自动获取请求头Authorization中的值将其赋值给context.Tokenservices.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options  {......options.Events  new JwtBearerEvents{OnMessageReceived  context {//Bearer Tokencontext.Token  ;  return Task.CompletedTask;}}; });你问我是怎么知道的我是猜的吗当然不是丢出官方源码就知道了直接找到JWT如何处理认证则一目了然protected override async TaskAuthenticateResult HandleAuthenticateAsync() {string token  null;// Give application opportunity to find from a different location, adjust, or reject tokenvar messageReceivedContext  new MessageReceivedContext(Context, Scheme, Options);// event can set the tokenawait Events.MessageReceived(messageReceivedContext);if (messageReceivedContext.Result ! null){return messageReceivedContext.Result;}// If application retrieved token from somewhere else, use that.token  messageReceivedContext.Token;if (string.IsNullOrEmpty(token)){string authorization  Request.Headers[HeaderNames.Authorization];// If no authorization header found, nothing to process furtherif (string.IsNullOrEmpty(authorization)){return AuthenticateResult.NoResult();}}.......  }到这里我们知道了自动获取Token的原理我们修改了Token存储方式照葫芦画瓢就好如此将覆盖默认标准模式如下OnMessageReceived  context  {var accessToken  context.Request.Cookies[x-access-token];if (!string.IsNullOrEmpty(accessToken)){context.Token  accessToken;}return Task.CompletedTask; }从分析自动获取Token原理我们也可知道若与第三方对接依然可以使用请求头Authorization标准模式认证因为Cookie为空再次获取Authorization值注意发现若将前端未置于wwwroot下即完全前后分离涉及到跨域的情况下比如使用的是axios封装请求那么应该必须在请求头中添加【withCredentials:true 】否则使用Http Only将无效出现401额外意外发现一个很有意思的问题未深入研究这里当做小知识了解下就好或许是我自以为发现新大陆了呢当我们创建AccessToken时都会设置一个过期时间我们知道此过期时间肯定不会设置过长但是若在比如移动端微信小程序中若设置时间不长必然要考虑刷新Token问题为了懒一点我们将Token设置为永不过期那么JWT支持吗当然支持只不过根据我刚好尝试了几次找到了JWT永不过期的上限最大只能是16年若超过此临界点比如17年如下将会出现401具体错误如下了解了解就好也没啥鸟用我也是经常会瞎想比如考虑某些可能存在的极限情况
http://www.yutouwan.com/news/168747/

相关文章:

  • 兴义网站建设公司做服装要看国外哪些网站
  • seo网站三种链接全国企业信息查询网
  • ps做的网站怎样在dw里打开山东建设机械协会官方网站
  • 51网站一起做网店安庆市建设银行网站
  • 什么是网站建设需求wordpress 电子书插件
  • 网站关键字设置海口网站建设公司哪家好
  • 百度资料怎么做网站WordPress回车按钮
  • 各大免费推广网站linux wordpress路径
  • 购物网站是用什么软件做的wordpress登录的图片
  • 淘宝网站建设那么便宜做网站 php python
  • 教育类集群网站建设做化妆品注册和注册的网站吗
  • 北京西站地铁是几号线开网站建设公司赚钱吗
  • 网站设计区域台州网页设计公司
  • 做爰全过程免费的视频的网站wordpress自动生成手机端
  • 室内设计公司免费网站网站建设排名北京
  • 花都网站建设价格wordpress修改地址
  • 青岛房地产网站建设做网站笔记本
  • 计算机网络技术网站开发网站的推广方式有哪些
  • 网站建设系统服务介绍做素食的网站
  • 网站开发培训少儿建设的网站打开速度很慢
  • 国外html 网站网站建设解决方案
  • 找别人做网站要考虑哪些如何seo推广工厂店
  • 免费注册网站怎么做链接p2p视频网站建设
  • 目前做响应式网站最好的cms网站建设布为网
  • 兰州新区建设局网站地址页面设计要求
  • 成都城乡建设部网站首页上海建设执业资格注册中心网站
  • 广东万高建设网站免费软件版免费下载
  • 嵌入式网站开发做平台网站怎么赚钱
  • 门户网站建设存在的问题怎么做系统网站
  • 郑州网站建设特色中国建设工程招聘信息网站