首页 > 解决方案 > 从应用程序注销,但在使用谷歌身份验证时无法从谷歌帐户注销

问题描述

我在rails应用程序中使用谷歌进行登录身份验证,当我注销时它会重定向到我的索引页面但无法从谷歌帐户注销
我是第一次登录身份验证,请任何人帮助我

先感谢您

在这里,我在错误的地方编写代码

def create
    @user = Authentication.find_or_create_from_auth_hash(request.env["omniauth.auth"])
    session[:user_id] = @user.id
    redirect_to '/'
end
def destroy
    session[:user_id] = nil
    redirect_to '/login'
end

标签: ruby-on-railsrubyauthenticationrubygemsgoogle-oauth

解决方案


这不是它的工作方式。

考虑这样做:打开你的 Rails 应用程序 -> 使用 Google 登录 -> 你会看到你的 rails 应用程序仪表板 -> 现在打开一个新选项卡并打开 google.com -> 从那里注销 -> 现在切换回你的 rails 应用程序并重新加载页面。

即使您退出了 Google,您仍然可以登录到您的 Rails 应用程序。

这意味着您的 rails 应用程序并不完全是您的 google 帐户。他们都是独立的。您的 Rails 应用程序(通过 Omniauth)只需使用 OAuth API 请求 Google 数据,该 API 将授权应用程序然后发送访问令牌,并使用此令牌,您可以获得谷歌数据(如电子邮件)等。

但是,如果您仍想从 Google 帐户中注销用户,您可以使用此答案中的替代方法和此线程中的多个答案。


推荐阅读