Ruby on rails 如何检查谷歌用户是否已经在我的网站上建立了帐户?

Ruby on rails 如何检查谷歌用户是否已经在我的网站上建立了帐户?,ruby-on-rails,ruby,omniauth,access-token,Ruby On Rails,Ruby,Omniauth,Access Token,在我的网站上,用户可以注册他们的谷歌账户。我可以很好地做到这一点,我存储了他们的访问令牌以及访问令牌到期的时间。如果他们以前的访问令牌过期,我也会得到一个新的令牌。我想能够自动登录用户,如果他们已经登录了谷歌帐户,他们签署了。这可能吗?我正在使用omniauth-google-oauth2和google ruby api客户端,因为我希望将来使用google文档和google日历 下面是我如何处理用户的保存和注册 def self.find_for_google_oauth2(access_to

在我的网站上,用户可以注册他们的谷歌账户。我可以很好地做到这一点,我存储了他们的访问令牌以及访问令牌到期的时间。如果他们以前的访问令牌过期,我也会得到一个新的令牌。我想能够自动登录用户,如果他们已经登录了谷歌帐户,他们签署了。这可能吗?我正在使用omniauth-google-oauth2和google ruby api客户端,因为我希望将来使用google文档和google日历

下面是我如何处理用户的保存和注册

def self.find_for_google_oauth2(access_token, signed_in_resource=nil)
      data = access_token.info
      user = User.where(:email => data["email"]).first

      unless user
          user = User.create(name: data["name"],
                   email: data["email"],
                   password: Devise.friendly_token[0,20],
                   access_token: access_token.credentials.token,
                   expiredate: DateTime.now + (access_token.credentials.expires_at/1000).seconds,
                   expires: access_token.credentials.expires
                  )
      end

      if (user.expires && (DateTime.now > user.expiredate))
        user.access_token = access_token.credentials.token
        user.expiredate = DateTime.now + (access_token.credentials.expires_at/1000).seconds
        user.expires = access_token.credentials.expires
      end

      user
  end

您从哪里获得
access\u token
以传递到该方法?为什么你自己检查代币过期,而不是让谷歌帮你检查?我建议您只需将
access\u令牌
存储在用户的cookies(纯安全)中,或发明您自己的身份验证过程,以便用户在cookies中登录到您的站点,您将检查凭据,在数据库中查找一个令牌,并在google services中静默地执行
oauth
。我从omniauth-google-oauth2 gem获得它。它给我时间(以毫秒为单位),我把它转换成日期。一旦到期,我将续订代币。如何将其存储到饼干中?有没有像你说的那样的好教程?有<我想,代码>网络::HTTP就足够了。希望能有帮助。