小编Rom*_*149的帖子

Rails API:实现身份验证的最佳方式?

我正在编写一个Rails 4应用程序,它将为尚未开发的移动应用程序公开API.用户将使用移动应用程序中的电子邮件和密码进行身份验证.

虽然我已经找到了很多关于这个主题的信息.很难看出什么是过时的或非最佳的.我已经阅读了HTTP Basic Auth,它看起来似乎不太安全,以及基于HTTP令牌的Auth,但我不确定如何将它与常规电子邮件和密码认证结合起来(我正在使用Devise by方式).

我想知道目前关于如何实现这一目标的最佳实践,所以我一定会采取正确的方式.

ruby-on-rails rails-api ruby-on-rails-4

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

Python:理解组成两个词典

我正在尝试编写一个理解,它将以下列方式组成两个字典:

d1 = {1:'a',2:'b',3:'c'}
d2 = {'a':'A','b':'B','c':'C'}
result = {1:'A',2:'B',3:'C'}
Run Code Online (Sandbox Code Playgroud)

也就是说,所得到的字典由第一个的键和每个第二个的值形成,其中第一个的值等于第二个的键.

这是我到目前为止所得到的:

{ k1:v2 for (k1,v1) in d1 for (k2,v2) in d2 if v1 == k2 }
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我是Python的新手,所以我不确定这是否真的有意义.顺便说一句,我正在使用python 3.3.2.

提前致谢.

python

8
推荐指数
2
解决办法
1111
查看次数

在服务Web和API的Rails应用程序中正确使用protect_from_forgery

我正在开发一个通过API为移动应用程序提供服务的Rails 4应用程序,并且有一个用于管理员管理应用程序的Web UI.还有一些用户可以看到的网页(成功的电子邮件确认和重置密码).

我创建了两组控制器:一组继承自APIController,另一组继承自AdminController.这两个都继承自ApplicationController.负责面向用户的网页的其余控制器也继承自ApplicationController.

鉴于此方案,我不确定如何使用protect_from_forgery正确实施CSRF保护.我目前有以下内容:

class ApplicationController < ActionController::Base
  # ...
end

module API
  class APIController < ApplicationController
    protect_from_forgery with: :null_session, if: Proc.new { |c| c.request.format == 'application/json' }
    # ...
  end
end

module Admin
  class AdminController < ApplicationController
    protect_from_forgery with: :exception
    # ...
  end
end

class UsersController < ApplicationController
  protect_from_forgery with: :exception
  # ...
end
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:这是正确的吗?有没有办法改善它?APIController中的检查是否毫无意义,因为所有API请求都只是JSON吗?

Brakeman抱怨说ApplicationController中没有protect_from_forgery调用,但也许它看不到子类中的调用.

提前致谢!

csrf-protection ruby-on-rails-4

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