如何将API(令牌)身份验证的用户(在Flutter应用中)重定向到基于会话的身份验证(在Flutter Web视图中)?

时间:2019-02-01 23:16:25

标签: php authentication webview flutter session-cookies

我想达到的目标:让我们说我有一个API(标记)认证的用户那么一旦该用户点击一个按钮,我想打开一个网页视图和基于会话的身份验证验证了他。 enter image description here

到目前为止,我所做的事情(很多解决方案和主张):

  1. 使用url_launcher

    • 打开浏览器,点击launch(url)
    • 将令牌(获取参数)发送到后端服务器
    • 验证用户身份并重定向回 工作正常但Ux不好,用户需要在浏览器和应用之间切换!
  2. 使用1 flutter_webview_plugin或2 webview_flutter

    • 点击打开网页视图   1

      class __WebWidget extends StatelessWidget {
       @override
       Widget build(BuildContext context) {
         return WebviewScaffold(
           url: url + "?token=${userManager.token}",
           appBar: new AppBar(
             title: Text('Space'),
           ),
           withZoom: true,
           withLocalStorage: true,
           hidden: true,
           initialChild: Container(
             color: Colors.blueAccent,
             child: const Center(
               child: Text('Loading....'),
             ),
           ),
         );
       }
      }
      

      2

      class WebWidget extends StatelessWidget {
        WebWidget({this.url});
      
        final String url;
      
        @override
        Widget build(BuildContext context) {
          return Scaffold(
            appBar: AppBar(
              title: Text('Votre Espace '),
            ),
            body: WebView(
              initialUrl: url + "?token=${userManager.token}",
              javascriptMode: JavascriptMode.unrestricted,
            ),
          );
        }
      }
      ```
      
    • 将令牌(获取参数)发送到后端服务器

    • 验证用户身份并重定向回 不起作用!

我怀疑web视图不支持cookie!

  

在后端,我正在使用laravel(php7)和Apache服务器。

提前感谢

1 个答案:

答案 0 :(得分:0)

由于您使用的是Flutter,因此建议您使用Flutter Web Auth插件通过Web服务对用户进行身份验证。它可以用于任何可以重定向到自定义方案的Web流。

它会使用经过身份验证的令牌自动将您重定向到您的应用程序(如果您的应用程序是Android,则请记住按照README.md文件中的说明编辑AndroidManifest.xml)