小编Jim*_*m-Y的帖子

Flexbox垂直填充可用空间

现在flexbox连续我都可以写

<div layout="row">
  <div>some content</div>
  <div flex></div> <!-- fills/grows available space -->
  <div>another content</div>
</div>
Run Code Online (Sandbox Code Playgroud)

我希望实现相同但垂直,就像在这张照片上 在此输入图像描述 目前的问题是需要增长的div没有任何高度,因此两个内容相互低于一致.我希望我的第二个内容位于具有固定高度的父容器的底部!

我知道我可以通过将第二个内容定位为绝对来解决这个问题bottom: 0;但是我可以实现flexbox吗?

html css css3 flexbox

22
推荐指数
2
解决办法
3万
查看次数

处理JWT到期和JWT有效负载更新

我的个人/爱好应用程序有一个基于Koa的Node.js后端.

我用JWT令牌实现了会话处理.客户端(AngularJS)在成功登录后获取令牌并将令牌存储在某处(当前存在sessionStorage但是出于此问题的目的,它应该无关紧要).

我有两个问题:

  1. 当我需要更新JWT所代表的用户记录时,比如说,用户打开了双因素身份验证(2FA),所以我让他提供他的电话号码,我想在用户的记录中设置这个电话号码.目前,在成功验证电话号码后,我调用后端更新用户记录,并使用更新的用户记录创建新的JWT令牌(我从JWT令牌中排除敏感信息,如散列密码,但我想要包括客户端使用的电话号码).当某些凭据更改并使用此新令牌更新现有客户端令牌时,是否可以创建新令牌?我是否永远不会创建另一个令牌,只创建一个令牌并且只有在成功验证后?然后,我如何更新令牌中的有效负载?

  2. 我该如何处理过期的JWT令牌?在我看来,我有3个(可能的)场景:

    2.1.JWT准备短暂生活,比如说15分钟.如果后端服务器回复401 Unauthenticated'Invalid token'(我猜这是默认行为koa-jwt),那么我会自动注销我的客户端并要求重新验证.但我还建立了一个互补的中间件,它是后端链中的最后一个,用刷新的到期重新创建令牌,客户端也会用刷新的令牌替换现有的令牌.因此,如果用户处于活动状态并且每个受保护的API调用都使用该应用程序,则在成功的情况下,将创建新令牌以替换旧令牌.

    2.2.JWT设置为长寿命,比如1周,如果它到期,我选择从客户端重新进行身份验证.

    2.3.复制https://tools.ietf.org/html/rfc6749#section-1.5.在成功验证后创建JWT令牌时,我们发送access_token和refresh_token.当access_token过期并且服务器以HTTP 401 '无效令牌'(koa-jwt默认)响应时,客户端将refresh_token发送到后端以要求新的access_token(以及可选地新的refresh_token).在这种情况下,我不完全理解如何针对旧的access_token验证refresh_token以提供新令牌?或者为什么我们需要一个refresh_token?

关于上层主题(JWT更新和JWT到期)的任何通用建议都会有所帮助.

javascript node.js jwt koa

10
推荐指数
2
解决办法
8107
查看次数

从什么时候开始 null.toString() 返回 [object Null]?

我很好奇,因为我认为

Object.prototype.toString.call(null)
Run Code Online (Sandbox Code Playgroud)

返回[object Object],但现在我在 Chrome 和 FF 中检查,并且都返回了[object Null]。现在的问题是,我是否可以假设 Object.prototype.toString 总是会告诉我好的类型?

到目前为止,我正在使用此方法检查每种类型,但不是空值,我正在检查空值

obj === null;
Run Code Online (Sandbox Code Playgroud)

谢谢!


澄清说明:这个“问题”不是一个严重的情况,因为我正在使用 atm

function isNull(obj) {
  return obj === null;
}

function isUndefined(obj) {
  return typeof obj === 'undefined';  
}
Run Code Online (Sandbox Code Playgroud)

这工作得很好,但如果Object.prototype.toString.call()将旧的浏览器工作充分,我可能会下降这两个功能,并延长我的解决方案nullundefined这样的:

Object.prototype.toString.call(null)
Run Code Online (Sandbox Code Playgroud)
obj === null;
Run Code Online (Sandbox Code Playgroud)

javascript

5
推荐指数
1
解决办法
8497
查看次数

我可以在迁移脚本中使用 sequelize 模型吗

我想在迁移脚本中使用续集模型。有没有可能,如果有,能否举个例子?谢谢

我正在创建一个表,帐户,在使用迁移脚本创建它之后,我想遍历所有未关联的用户(旧用户)(~还没有帐户)并为这些用户创建一个新帐户老用户。为此,我想使用续集模型来编写:User.findAll({ include: [Account], where: { Account: null } })我知道这有点太奇特了,我可以写一个续集声明来创建这些帐户,但是.. :D

当我尝试要求 sequelize 模型时,迁移总是会引发[SyntaxError: Unexpected token =]错误。请注意,在脚本创建表(帐户)后,我只需要模型(帐户)。我的模型文件中没有语法错误,因为否则它可以工作,但是当我尝试在迁移脚本中使用它时,它没有。

javascript node.js sequelize.js

5
推荐指数
1
解决办法
1385
查看次数

从用户电子邮件创建哈希/令牌以进行电子邮件验证

任何人都可以帮我一个从用户输入(电子邮件地址)创建安全令牌(或哈希)的答案。我想制作一个用于注册的电子邮件验证系统。

  • 用户使用电子邮件地址和密码注册
  • 我想创建一个唯一的URL,然后将其发送给用户(因此出现问题)
  • 我将这些(安全的)存储在临时表中
  • 用户通过发送的URL验证自己

我的问题是此URL的外观如何。我认为我应该通过将电子邮件地址编码到其中,将URL保存到临时表中来使其具有唯一性,并且当用户打开链接时,我会比较两者。如果匹配,我会将凭据移至真实表。

您是否有关于此主题的任何良好资源。我在后端有nodejs。谢谢

javascript security web-applications node.js

4
推荐指数
1
解决办法
3564
查看次数

重新应用 git commit

我有一个提交,其中的拉取请求已经合并到开发分支中。然后,在一个弱者犯了一个错误并将主分支合并回开发之后,不知何故,我不知道如何,但我已经合并的提交现在已经从开发分支中消失了。

我可以在提交后追踪到 dev 分支的提交,并且可以追踪出错的地方,但是破坏/删除我的合并提交的提交的 PR 不会显示我的文件,就好像它会因此而更改一样犯罪。

长话短说,一些代码通过提交恢复到旧状态并且没有任何迹象,我如何将提交重新应用到开发分支?

git version-control merge

3
推荐指数
1
解决办法
1626
查看次数

组件之间的通信

这是我的情况,我很反应/变化,并开始玩它.我的玩具项目是一个简单的图书馆应用.我目前的状况如下:

  • 我有一个名为Login的组件.该组件仅负责存储当前"登录"的用户,以便能够处理库中的后一个借/返按钮.因此,用户输入其名称,此名称将保存到会话存储中.
  • 我的另一个组件名为Library,它包含我的应用程序的主要逻辑.

如果我改变当前用户,我很难找到如何重新渲染我的库组件.从我的第一个项目开始,我不想使用正确的身份验证或创建路由器.所以我只做了一个Login表单,每当用户输入他的名字并登录时,我就会将库应用程序渲染到DOM上.

Login = React.createClass({

  _handleSubmit: function () {

    var inp = this.refs.login.getDOMNode();

    sessionStorage.setItem("username", inp.value);
    console.info('User Credentials saved to SessionStorage');
    inp.value = '';

    React.renderComponent(
      <Library />,
      document.querySelector('#content')
    );
  },

  render: function () {
    return (
      <div className="panel panel-default">
        blabla
                  <button className="btn btn-default" type="button" onClick={this._handleSubmit} >
                    Login
                  </button>
        blabla
      </div>
    );
  }
});
Run Code Online (Sandbox Code Playgroud)

这很好用,但我认为它远非一种最佳方法.每当我再次登录时,react都会将一个新实例从Library组件重新呈现到DOM节点中.我根本不打算解构,我认为这很糟糕:(我知道反应不会附加,但擦除并填充到节点中,但事件处理程序可能会保留等等.

那么对于我的情况,什么可能是一个很好的解决方案?

我脑子里有3个可能的解决方案

  1. 要么我应该开发一个事件系统,以便能够在我与另一个用户重新登录以重新渲染自身时通知Library组件,或者
  2. 我可以在Login&Library上建立父子关系,所以当我修改Login组件的状态时,我的Library应用程序也会重新渲染.
  3. 调用将更新组件的Action
  4. 坚持当前

:)谢谢你的回答,干杯

暗示:

app.js

'use strict';
var React = require('react'),
    Login = require('./components/Login.jsx');

// Dev-tools
window.React = React;

React.renderComponent(
  Login(), …
Run Code Online (Sandbox Code Playgroud)

flux reactjs reactjs-flux

1
推荐指数
1
解决办法
1999
查看次数

测试字符串是否以 .html 结尾 | .html | .json

我想创建一个 javascript 正则表达式来测试字符串是否是指向.html,.htm.json资源的有效 URL 。

我试过

validUrl = new RegExp('(\.html)|(\.htm)$','g');
Run Code Online (Sandbox Code Playgroud)

像这样,但没有成功:(然后我尝试了

validUrl = new RegExp('(.*\.html|.*\.htm|.*\.json)$','i');
Run Code Online (Sandbox Code Playgroud)

这个似乎有效,但我不相信这是正确的。有人可以确保我吗?:)

谢谢

javascript regex

0
推荐指数
1
解决办法
610
查看次数