亲爱的优秀人才:
我正在开发Rails 3.2.12上的Ruby应用程序(我还是新手).
我正在努力让Devise与Omniauth合作......我正在尝试的第一个策略是Google_oauth2.
我选择了要在Google中使用的凭据后,我已将其重新定向到我的localhost:3000实例.
在重定向到localhost后,我看到一个闪光通知:
Could not authenticate you from GoogleOauth2 because "Csrf detected".
服务器日志包含:
Started GET "/users/auth/google_oauth2" for 127.0.0.1 at 2013-03-21 08:57:01 -0400
(google_oauth2) Callback phase initiated.
(google_oauth2) Callback phase initiated.
(google_oauth2) Authentication failure! invalid_credentials: OmniAuth::Strategie
s::OAuth2::CallbackError, OmniAuth::Strategies::OAuth2::CallbackError
Started GET "/users/auth/google_oauth2/callback?state=7849a3762d07e7f89e69b4aa46
7efc7b7b2c21655193396b&code=4/v-dSBwAvQUUZL87iNV_yk_Z8s_x0.cnqsdbDX4gUYaDn_6y0ZQ
NgQ9hAaewI" for 127.0.0.1 at 2013-03-21 08:57:40 -0400
Processing by OmniauthCallbacksController#failure as HTML
Parameters: {"state"=>"7849a3762d07e7f89e69b4aa467efc7b7b2c21655193396b", "cod
e"=>"4/v-dSBwAvQUUZL87iNV_yk_Z8s_x0.cnqsdbDX4gUYaDn_6y0ZQNgQ9hAaewI"}
Redirected to http://localhost:3000/users/sign_in
Completed 302 Found in 0ms (ActiveRecord: 0.0ms)
Run Code Online (Sandbox Code Playgroud)
我注意到,如果我只是直接将回调URL放入浏览器,而不提供任何参数,我会得到完全相同的结果.
http://localhost:3000/users/auth/google_oauth2/callback
Run Code Online (Sandbox Code Playgroud)
我该怎么办?我还可以提供哪些其他信息?
我正在和Angularjs擦肩而过,并且认为我会在SO的优秀人群中提出一个概念性的问题.这是来自经验丰富的开发人员的新手问题.
该应用程序具有仪表板要求......单个页面可以显示应用程序的许多部分.不同的用户类型获得不同的仪表板.我们已经有了传统的后端,因此首要任务是构建仪表板,以显示其新RESTful服务层中的许多位.
我想知道我应该如何从概念上考虑支持这种控制器所需的控制器?
第一个问题是......它们应该是以模型为中心还是以视图为中心?换句话说,它们应该是"以视图为中心"的控制器,其中包含"仪表板"一词吗?或者他们应该更专注于他们所代表的模型元素,例如"任务","联系人","通知".或者仪表板控制器应该与模型中心控制器一起使用?
接下来的问题是......控制器应该代表什么级别的粒度?如果以视图为中心的"Dashboards"控制器,它们应该是"ManagerDashboardController"还是"WorkerDashboardController"?如果以模型为中心的控制器,应该有控制器,如"LateTasks"和"OnTimeTasks",因为我需要在仪表板的不同部分显示它们,数据略有不同?
我正在寻找基于实际经验和/或对我尚未找到的优秀链接的参考的切实建议.