问题描述
我目前正在尝试使用Okta作为身份提供者来实现OpenID Connect。
我发现唯一可以处理OpenID Connect的插件是Flutter AppAuth Plugin。 不幸的是,我无法将其与本机Webview一起使用,以便为最终用户提供无缝的体验,或更重要的是,没有任何navbarcf。下图:
任何人都可以将本流程实现为本地Webview吗?
解决方法
我认为您无法在本地Webview中执行此操作。 OAuth和OIDC的设计使应用程序永远不会知道用户的凭据-应用程序仅接收ID令牌和访问令牌。如果您尝试将Okta(或任何OAuth流)嵌入本机登录名,则应用程序可以获取用户的凭据,并有可能获取它们。弹出浏览器是一种更安全的操作方式。
,要添加到Matt的答案中,AppAuth是此处的标准模式,其中涉及使用特殊的InApp /系统浏览器:
- Chrome自定义标签页
- ASWebAuthenticationSession
我的博客对此有一些详细信息。我总是建议人们从AppAuth示例开始。一些帖子: