我应该在OAuth 2.0身份验证后清除InAppBrowser缓存和会话缓存吗?

时间:2018-04-12 00:59:59

标签: cordova ionic-framework oauth-2.0 cordova-plugins openid-connect

标题确实说明了一切,但当然会提供有关问题的一些细节。

背景

我的Ionic3应用程序正在使用OAuth 2.0进行身份验证。这是流程:

  1. 用户点击登录
  2. 打开InAppBrowser webview,将其引导至OpenID Connect登录门户页面。
  3. 成功登录后,会调用重定向网址并随之发送auth_code。
  4. 应用程序(使用事件侦听器)使用auth_code查看此URL,并强制关闭InAppBrowser并获取auth_code
  5. 然后,应用程序将auth_code发送到服务器应用程序以获取令牌集(access_token,refresh_token等)并验证/验证它们未被欺骗或篡改。
  6. 成功验证后,令牌集和用户信息将被发送回应用程序并存储在本地存储中,用户可以输入应用程序。
  7. 只要会话未过期,我就可以对用户进行身份验证,否则我可以使用refresh_token再次进行身份验证。

    我的问题来自第2步 我不确定 是否 清除浏览器缓存和/或清除会话缓存InAppBrowser。

    如果我不清除浏览器缓存和会话缓存,我是否会将应用程序打开以防止任何漏洞或威胁?

    如果是这样,我可以使用访问/刷新令牌进行连续身份验证,但我很好奇,无法找到有关此方案的更多信息。

    示例清算:

    webview = window.cordova.InAppBrowser.open(openIdUrl, '_blank', 'location=no,clearcache=yes,clearsessioncache=yes');
    webview.addEventListener('loadstart', (event) => {
          if(event.url.inclues('redirect://?code')) {
            // Grab auth_code in event.url
            ...
            webview.removeEventListener('exit', () => {})
            webview.close();
            // Send auth_code to my server
            ...
          }
        });
    

    示例不清除:

    webview = window.cordova.InAppBrowser.open(openIdUrl, '_blank', 'location=no,clearcache=no,clearsessioncache=no');
    webview.addEventListener('loadstart', (event) => {
          if(event.url.inclues('redirect://?code')) {
            // Grab auth_code in event.url
            ...
            webview.removeEventListener('exit', () => {})
            webview.close();
            // Send auth_code to my server
            ...
          }
        });
    

    InAppBrowser Documentation

    clearcache:设置为,以便在打开新窗口之前清除浏览器的Cookie缓存

    clearsessioncache:设置为,以便在打开新窗口之前清除会话Cookie缓存

    非常感谢任何明确的答案/知识。这个领域很新。

0 个答案:

没有答案