小编Fit*_*ons的帖子

跨应用/服务器的Rails身份验证

我一直在开发我的rails应用程序,同时尽可能保持模块化.我正在尝试将下面的不同部分实现为服务.

说的Facebook的例子:
a)一个MainApp,允许用户有一个墙,柱等
b)一个PhotoApp存储的照片,使用户可以看到他的照片,等等,这是一个独立的应用程序,将有一个也可以由MainApp使用的REST API.

我正在考虑将OAuth用作单点登录解决方案(如本教程中所述http://blog.joshsoftware.com/2010/12/16/multiple-applications-with-devise-omniauth-and-single-sign-on /)每个应用程序将通过OAuth授权,并将基于cookie访问当前用户会话.

第一个问题:这是可行的解决方案吗?

第二个问题:我希望能够从 MainApp服务器(而不是用户的浏览器)调用 PhotoApp API.如何在这种情况下进行身份验证?

第三个问题:如果说我有一个使用node.js的服务,它将如何工作?

ruby authentication ruby-on-rails oauth single-sign-on

29
推荐指数
2
解决办法
6623
查看次数

MRI内部结构:rb_id2str的详细说明

在MRI中,似乎rb_id2str()负责在您打电话时完成所有工作Symbol#to_s.我惊讶地发现这是一个非常神秘的功能,我认为这是一个相当直接的操作.

我正在寻找这个函数正在做什么的详细解释.作为参考,这里是1.9.3中源代码的链接:

http://rxr.whitequark.org/mri/source/parse.y?v=1.9.3-p195#9950

一些具体问题:

四大if块在做什么?

  1. if (id < tLAST_TOKEN)
  2. if (id < INT_MAX && rb_ispunct((int)id))
  3. if (st_lookup(global_symbols.id_str, id, &data))
  4. if (is_attrset_id(id))

获得if语句中每个代码块的通用概述会很棒,但它不需要是逐行分析.

最后,我很好奇内存/垃圾收集的含义to_s:调用Symbol#to_s创建一个必须每次都被垃圾收集的新字符串,或者是否有类似内部写时复制的内容,它使用对实习表示的引用符号直到字符串发生突变?

ruby

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

使用std :: fmt进行格式化时,如何用可变数量填充数字?

在我向用户显示之前,我正在寻找0-pad字符串,例如

let x = 1234;
println!("{:06}", x); // "001234"
Run Code Online (Sandbox Code Playgroud)

但是,我希望输出字符串的长度是可变的,例如,它可以通过用户的命令行参数来设置:

let x = 1234;
let width = 6;
println!("{:0*}", width, x); //fails to compile
// error: invalid format string: expected `'}'`, found `'*'`
Run Code Online (Sandbox Code Playgroud)

与精度不同,0-padding似乎不支持*指定宽度.

我不是在寻找涉及手动填充的解决方案,因为重新实现部分内容似乎很尴尬std::fmt.

rust

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