我要写两个应用程序。第一个是.NET Core 2.0中的Web应用程序,第二个是用ElectronJs编写的桌面应用程序(应该是跨平台的)。
我需要一次系统登录。我读过关于OAuth2的信息,但我不确定它是否对Web应用程序有好处。
我可以在Web Api的.NET Core中编写自己的服务器身份验证,但是每次我需要检查用户是否经过身份验证时,用户名和密码都会通过互联网从Electron发送。
因此,更好的方法是执行OAuth2和一个登录窗口,该窗口将添加到.NET Core和Electron中的Web应用程序中。然后,我将使用令牌检查用户是否经过身份验证。 这是一个好的解决方案吗?
你最终应该开发这些组件:
- 桌面用户界面(电子)
- Web UI(我会使用SPA,但如果你愿意,你可以使用.Net Core)
- Web API (.Net Core) - 由两个 UI 调用
同时,您需要决定第三方授权服务器组件。您不会自己编写代码:
- 处理 OAuth 2.0 和开放 ID 连接消息 提供登录页面
- ,这样您就不需要编写登录页面
博客 + 代码示例
将OAuth应用程序编码到一个良好的水平是相当棘手的,但我有一个可视化博客和一些基于我公司实现的代码示例。
读者只需浏览并查看屏幕截图即可了解主要问题,并节省一些工作。
基本交互
以下链接显示了上述组件如何协同工作:
- SPA + API 编写
- 水疗 + 接口代码
桌面应用
桌面应用程序很难理解 - 建议打开系统浏览器。我有几个使用Electron的样本 - 也许从这里开始:
- 桌面应用撰写
- 桌面示例 1 - 环回
- 桌面示例 2 - 专用 URI 方案