ruby-on-rails - 从应用程序注销,但在使用谷歌身份验证时无法从谷歌帐户注销
问题描述
我在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
解决方案
这不是它的工作方式。
考虑这样做:打开你的 Rails 应用程序 -> 使用 Google 登录 -> 你会看到你的 rails 应用程序仪表板 -> 现在打开一个新选项卡并打开 google.com -> 从那里注销 -> 现在切换回你的 rails 应用程序并重新加载页面。
即使您退出了 Google,您仍然可以登录到您的 Rails 应用程序。
这意味着您的 rails 应用程序并不完全是您的 google 帐户。他们都是独立的。您的 Rails 应用程序(通过 Omniauth)只需使用 OAuth API 请求 Google 数据,该 API 将授权应用程序然后发送访问令牌,并使用此令牌,您可以获得谷歌数据(如电子邮件)等。
但是,如果您仍想从 Google 帐户中注销用户,您可以使用此答案中的替代方法和此线程中的多个答案。
推荐阅读
- python - 将pytest添加到python中的yield函数?
- ios - 列表未绑定到过滤的集合
- jquery - 将嵌套的 Json 字符串转换为对象并在 Jquery 数据表单元格中呈现
- python - 从已在 pandas 中重新索引的数据透视表中选择一列
- c - scandir 的相对路径处理
- c++ - Visual Studio - C++ 新文件默认代码
- javascript - 在多个地方更新多个值的 React Context Provider
- javascript - 在while循环中检查数字的因子时获得无限循环
- gradle - 收集 Gradle 项目的依赖约束
- python - 在 Raspberry Pi 4 上使用 PyAudio 的 ALSA 错误