小编Aug*_*ger的帖子

微服务认证策略

我很难为微服务架构选择合适/安全的身份验证策略.我在这个主题上发现的唯一SO帖子就是这个:微服务架构中的单点登录

我的想法是在每个服务(例如,身份验证,消息传递,通知,配置文件等)中为每个用户提供一个唯一的引用(在逻辑上user_id与他相当)以及在id登录时获取当前用户的可能性.

从我的研究中,我发现有两种可能的策略:

1.共享架构

共享架构

在此策略中,身份验证应用程序是其中一项服务.但是每个服务必须能够进行转换session_id=> user_id所以它必须简单易行.这就是为什么我想到Redis,它会存储密钥:值session_id:user_id.

2.防火墙架构

防火墙架构

在此策略中,会话存储并不重要,因为它仅由身份验证应用程序处理.然后user_id可以转发到其他服务.我想到了Rails + Devise(+ Redis或mem-cached,或cookie存储等),但有很多可能性.唯一重要的是Service X永远不需要对用户进行身份验证.


这两种解决方案如何比较:

  • 安全
  • 稳健性
  • 可扩展性
  • 便于使用

或者你可能会建议我在这里没有提到的另一种解决方案?

我更喜欢解决方案#1,但没有找到太多的默认实现,这可以保证我正朝着正确的方向前进.

我希望我的问题不会被关闭.我真的不知道还能在哪里问它.

提前致谢

architecture authentication microservices

123
推荐指数
3
解决办法
5万
查看次数

Bootstrap3 .visible-*.hidden-*显示内联

Bootstrap有一些很好的.visible-*(例如.visible-lg)类实用程序,用于根据屏幕大小选择要显示或隐藏的内容.

使用这些类时,它会display: block !important;在正确的屏幕大小时应用样式.

但有时,我想将它用于显示inline或显示的某些元素inline-block.

我怎么能干净地覆盖一些引导规则才能做出选择?或者它应该是bootstrap中的功能请求?


编辑

好像我不是唯一一个对这个问题感到疑惑的人.这是github问题.

谢谢你的最新答案!

css responsive-design twitter-bootstrap twitter-bootstrap-3

48
推荐指数
3
解决办法
5万
查看次数

需要HTML5输入,在提交时滚动到带有固定导航栏的输入

当我尝试提交一个缺少必填字段的表单时,我的浏览器(Chrome)会显示一条消息,提到有一个字段丢失,如果它不在我的屏幕上,则会向上滚动到它.

我的问题是我的网页上有一个50px的固定标题,结果输入字段被隐藏了,消息似乎无处不在:

隐藏输入字段

代替

输入字段显示

有没有解决的办法?

我尝试将50px的边距应用于<html><body>

干杯


编辑

这是一个问题的小提琴:http://jsfiddle.net/LL5S6/1/

html javascript css html5

47
推荐指数
5
解决办法
2万
查看次数

Facebook调试器:为什么抱怨app_id缺失

在使用facebook调试器时,它会抱怨:

警告fb:app_id尚未包含在元标记中.指定应用ID,以便将与Facebook共享的故事正确归因于该应用.或者,可以在打开共享对话框时在URL中设置app_id.否则,将分配默认应用程序ID(966242223397117).

我不明白为什么我有这样的消息,因为我没有app_id用于我的网站,我不应该为什么,因为我没有做任何Facebook连接或使用他们的任何插件.

我错过了什么,或者只是因为facebook想要推动我为我的网站创建一个应用程序?

facebook facebook-graph-api

46
推荐指数
2
解决办法
6万
查看次数

React Transferring Props除了一个

React建议转移道具.整齐!

我怎样才能转移除一个以外的所有人?

render: function(){
  return (<Cpnt {...this.propsButOne}><Subcpnt one={this.props.one} /></Cpnt>);
}
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

44
推荐指数
2
解决办法
1万
查看次数

Docker ERROR:处理tar文件时出错(退出状态1):意外的EOF

我需要空间并执行: docker rmi $(docker images -f "dangling=true" -q)

从那以后我不能用docker-compose : docker-compose build,我得到错误:ERROR: Error processing tar file(exit status 1): unexpected EOF.

我试图删除所有图像,重新安装docker,但没有做任何事情:经过相当长的一段时间后总是出现同样的错误.

我建立在另一个系统上它起作用,这表明这是一个错误的状态问题.

知道我应该清理什么吗?

使用:

? docker version
Client:
 Version:      17.03.0-ce
 API version:  1.24 (downgraded from 1.26)
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 28 08:01:32 2017
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.6
 API version:  1.24 (minimum version )
 Go version:   go1.6.2
 Git commit:   78d1802
 Built:        Tue Jan 31 23:35:14 2017
 OS/Arch:      linux/amd64
 Experimental: false …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

29
推荐指数
4
解决办法
4万
查看次数

Grunt中类似Nodemon的任务:执行节点进程并观察

我觉得我错过了什么.

这是我想要实现的目标:

有一个执行我的grunt任务server.js并且watch并行运行任务.我觉得这正是grunt设计的任务之一,但我无法实现这种配置.

其中,我读过这个: 通过Grunt运行Node应用程序, 但我仍然无法做到.

这是我的Gruntfile.js:

module.exports = function(grunt) {

  // Project configuration.
  grunt.initConfig({
    watch: {
      scripts: {
        files: ['*.js'],
        tasks: ['start'],
        options: {
          nospawn: true
        }
      }
    }
  });

  grunt.loadNpmTasks('grunt-contrib-watch');

  grunt.registerTask('start', function() {
    grunt.util.spawn({
      cmd: 'node',
      args: ['server.js']
    });
    grunt.task.run('watch');
  });

  grunt.registerTask('default', 'start');
};
Run Code Online (Sandbox Code Playgroud)

"grunt-contrib-watch": "~0.3.1"应该是比grunt-contrib-watch@0.3.0前面提到的帖子更高的版本.

如果你能帮助我实现正确的配置,我将非常感激.但更多的是,我不明白为什么没有正式的grunt-contrib-nodemon-like包装和任务,因为我觉得使用grunt是另一个很好的理由(我真的很喜欢它作为工具!)

谢谢

watch spawn node.js gruntjs

28
推荐指数
1
解决办法
2万
查看次数

Rails与实时通知架构

我需要向我的Rails应用添加实时通知.以下是我发现的不同架构.

1.导轨+ Socket.io + Redis的:如所建议的在该中,具有以下结构:

Rails + Socket.io + Redis

  • Pro:清理,如果Socket.io关闭,数据不会丢失
  • Con:介绍几种技术(加强可维护性)

2. Rails + Socket.io:使Rails成为一个Socket.io客户端,就像这个repo似乎做的那样:https://github.com/lyondhill/socket.io-ruby-client

Rails + Socket.io

  • :直截了当
  • 骗局:依靠不受欢迎的图书馆

3. Ruby Faye:http://faye.jcoglan.com/ruby.html

  • :100%Ruby
  • Con:由于需要外部应用程序,Socket.io现在比Faye更像行业标准.

4. ActionController :: Live:http://edgeapi.rubyonrails.org/classes/ActionController/Live.html

  • Pro:应用程序中的Rails
  • 骗局:太不成熟了

问题:

  • 现在有没有一种标准的方式(我已经错过了)?
  • 对我的比较有任何想法(希望这不会被关闭)?

sockets ruby-on-rails websocket actioncable

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

如何使用docker-compose重建和更新容器而无需停机?

我很喜欢使用docker-compose.

例如.在我的服务器上,当我想通过微小的更改来更新我的应用程序时,我只需要git pull origin master && docker-compose restart,完美地工作.

但有时,我需要重建(例如,我添加了一个npm依赖,需要npm install再次运行).

在这种情况下,我这样做docker-compose build --no-cache && docker-compose restart.

我希望这会:

  • 创建我的容器的新实例
  • 停止现有容器(在较新的容器完成后)
  • 开始新的
  • 可选择删除旧的,但这可以手动完成

但实际上它似乎又重新启动了前者.

这是预期的行为吗?

如何构建之后处理重建并启动新的重建?

也许我错过了一个特定的命令?拥有它会有意义吗?

docker docker-compose

23
推荐指数
6
解决办法
3万
查看次数

Shell:如果git clone if文件夹已经存在,请不要失败

我正在编写一个自动脚本.

在某些时候,我在打电话git clone <repo>.但是这个操作有可能已经完成.

git clone --no-fail如果存储库存在,我如何调用它以忽略它?

谢谢

git shell

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