小编Hor*_*cio的帖子

使用JavaScript从UIWebView清除凭据

一些背景:

这是一个rails使用4.2 Web应用程序deviseomniauth-facebook其设定trueapple-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)


javascript ruby-on-rails uiwebview devise ios

6
推荐指数
1
解决办法
261
查看次数

如何在zsh提示符下获取绝对路径?

我正在从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)

zsh

1
推荐指数
3
解决办法
7960
查看次数

标签 统计

devise ×1

ios ×1

javascript ×1

ruby-on-rails ×1

uiwebview ×1

zsh ×1