Google oauth通过设计和omniauth/oauth不断请求访问

Art*_*kel 5 ruby ruby-on-rails oauth devise omniauth

我可以使用omniauth(oauth NOT openid)和devise.rb配置这样的设计:

config.omniauth :google, KEY, SECRET
Run Code Online (Sandbox Code Playgroud)

并且它正确地重定向到谷歌询问权限(并返回)...

但不幸的是,它总是那样做.应该(我相信)知道我刚刚授权使用谷歌,并且应该在第一次之后跳过重定向谷歌.有关如何使这项工作的任何建议?

我正在谈论的许可是:"网站blah.com要求访问您的Google帐户以获取下面列出的产品".我不希望这个页面总是重新出现.

fx_*_*fx_ 1

您需要自己实现回调 - Devise 和 Omniauth 默认情况下都不为您提供这些回调。它将负责将用户发送到您的 OAuth 端点并确保他返回,但它不会消耗已发送的信息和/或让用户登录。

这些事情由你来做。

Devise 有一个关于创建简单回调控制器的 wiki 页面:https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview

Ryan Bates 有一个关于做更通用的回调控制器的 Railscast:http://railscasts.com/episodes/236-omniauth-part-2

我还写了一篇关于通用回调控制器的文章:http ://blog.impaled.org/code/2011/2/devise-1-2-with-omniauth-on-rails.html