首页 文章

在Electron中使用Okta进行Angular 5身份验证

提问于
浏览
0

我试图配置我的角度应用程序身份验证部分,但我从一个html文件加载我的角度应用程序,而不是加载到本地服务器 . 解决这个问题的最佳方法是什么?我正在使用angular-oauth2-oidc库来执行此任务,当我使用 ng serve 直接在浏览器上启动角度应用程序时,身份验证工作正常,因为重定向url设置为localhost:4200,但是使用Electron它不起作用它不托管在本地服务器上 .

2 回答

  • 0

    如果您推荐使用桌面应用程序的正确OAuth流程,请根据Auth0 web site,即 'Authorization Code (PKCE)' .

    您的Angular OIDC库适用于单页应用程序,它使用名为 'Implicit Flow' 的不同解决方案 .

    桌面应用程序的技术是在系统浏览器上触发登录,但它比你可能想要的更棘手,更多的工作 .

    有一个Electron AppAuth Sample可以进行桌面登录:

    • 在用户登录期间,可以切换到系统浏览器

    • 登录完成后,将通知桌面应用程序

    • 通知是通过 Loopback InterfacePrivate URI Scheme

    我一直在撰写一篇关于您可能想要浏览的OAuth技术的非常详细的博客:它包含了Desktop Logins的一些注释 .

  • 0

    如果你更换默认的 NodeBasedHandler ,可以使用一个新的电子窗口 - 见This Code from StupidUglyFool - 他发布了一些好东西 .

    ELECTRON WINDOW LOGIN PROBLEMS

    我也开始走这条路 - 它会起作用,但Electron Window实际上是一个带有私人浏览器会话的Web视图,你会遇到这些问题:

    • 密码自动填充在用户登录时不起作用

    • 跨多个桌面应用程序进行单点登录将无法正常工作

    从安全术语来看,通过Electron Windows登录并不正确 - 某些提供商(如Google)会阻止登录 .

    SYSTEM BROWSER LOGINS

    如果您有兴趣,我在GitHub上有几个我的样本可以帮助您:

    这些都替换了 desktopapp/src/plumbing 下的NodeBasedHandler,所以你可以借用它们的想法 . 此外,两个代码示例都链接到带有一些屏幕截图等的写入 .

    NONE OF THE OPTIONS ARE PERFECT

    不幸的是,没有选择是完美的,你需要根据可用性/安全性/复杂性之间的权衡做出自己的选择 .

相关问题