一些背景:
这是一个rails
使用4.2 Web应用程序devise
和omniauth-facebook
其设定true
为apple-mobile-web-app-capable
通过Safari中的URL,用户可以将Web应用程序添加到其iOS设备的主屏幕.
这里的问题是,当用户第二次使用Facebook登录时,即使用户从Web应用程序和Safari中的Facebook注销,它也会使用与之前相同的用户进行身份验证.
换句话说,一旦您使用Facebook登录,Web应用程序(UIWebView)每次都会应用相同的凭据.无论您的Facebook在Safari中的当前用户,或者您是否从Web应用程序注销.
即使Web应用程序 - UIWebView已从iOS设备的主屏幕中删除,也会发生这种情况.
此功能适用于浏览器 - Safari,Mobile Safari和Chrome.
我发现Safari和UIWebView在不同的地方保存数据,但不确定如何访问UIWebView数据(cookie /会话/凭证)以删除它.
我想通过JavaScript来做到这一点.但是,我对其他选择持开放态度.请注意,这是一个Rails应用程序.
代码:
的Gemfile
gem "rails", "~> 4.2"
gem "devise", "~> 3.5"
gem "omniauth-facebook", "~> 3.0"
Run Code Online (Sandbox Code Playgroud)
application.html.haml
%head
%meta{ name: "apple-mobile-web-app-capable", content: "yes" }/
Run Code Online (Sandbox Code Playgroud)
查看(HAML)
= link_to destroy_user_session_path, method: :delete do
.css_classes Sign Out
Run Code Online (Sandbox Code Playgroud)
sessions_controller.rb - 来自Devise
def destroy
super
cookies.clear
end
Run Code Online (Sandbox Code Playgroud)
我正在从bash切换到zsh.
我想更新我的新zsh提示并四处寻找方法,但我只通过oh-my-zsh找到了"解决方案".
目标:
Location: ~/dir_1/dir_1_1/dir_1_1_1
Run Code Online (Sandbox Code Playgroud)
是)我有的:
Location: dir_1_1_1
Run Code Online (Sandbox Code Playgroud)
代码(来源):
PS1='${SSH_CONNECTION+"%{$fg_bold[green]%}%n@%m:"}%{$fg_bold[green]%}Location: %c%{$reset_color%}$(git_prompt_info) '
Run Code Online (Sandbox Code Playgroud)