Flutter基于MSAL_js的AD B2C认证失败,求本地HTTPS适配方案
问题解决与HTTPS本地配置指南
原始问题根源
你遇到的登录异常(重定向模式下Google登录界面无法输入、弹窗模式下重定向后404),核心原因是redirectUri中的URL格式错误:https:localhost:8080缺少了双斜杠,浏览器无法正确解析这个地址。将其修正为http://localhost:8080/signin-oidc后,登录流程即可正常工作。
配置HTTPS本地环境的方法
如果需要让浏览器支持HTTPS的localhost,可通过以下方式实现:
使用Flutter自带HTTPS调试参数
启动Flutter Web项目时指定SSL证书和密钥参数,可使用Flutter生成的默认证书或自定义证书:flutter run -d chrome --web-port 8080 --web-ssl-certificate=path/to/cert.pem --web-ssl-key=path/to/key.pem用mkcert生成本地可信证书
- 安装mkcert工具(根据操作系统选择对应安装方式)
- 生成本地根CA证书:
mkcert -install - 生成localhost的HTTPS证书:
mkcert localhost 127.0.0.1 ::1 - 启动项目时指定生成的证书:
flutter run -d chrome --web-port 8080 --web-ssl-certificate=localhost.pem --web-ssl-key=localhost-key.pem
更新AD B2C应用配置
在Azure AD B2C门户中,将应用的重定向URL更新为https://localhost:8080/signin-oidc,确保与代码中的redirectUri完全一致。代码调整
修改代码中的redirectUri为HTTPS格式:..redirectUri = "https://localhost:8080/signin-oidc"
内容的提问来源于stack exchange,提问作者Mischa
相关产品推荐
相关产品推荐

