我正在开发一个Blazor WASM独立前端,连接到我正在开发的ASP.NET Core 8 Web API。
目前,我的身份验证流程非常简单:
1.用户在登录页面中输入其凭据
1.对我的Web API“登录”端点进行调用
- Web API返回令牌和刷新令牌
- Wasm将其保存到localStorage中,此时用户已通过身份验证。
1.在每个httpRequest to API之前,拦截器根据过期时间检查令牌是否仍然有效。如果不是,则wasm调用Web API“refreshToken”端点。
Current Auth flow
这是目前的工作相当不错。
首先,我想知道我是否真的在用正确的方法做这件事。它是否足够安全?在Web API中使用OpenIddict不是更好吗?
但主要的问题是以下一个:我想添加谷歌SSO到我的Blazor Wasm根据microsoft documentation和这里的我的计划。
1.用户点击“登录与谷歌”,并登录自己 - Wasm接收带有IdToken的回调
- Wasm将此IdToken发送到我的Web API
- Web API验证这是一个实际有效的谷歌令牌,并创建用户,如果不存在。
- Web API返回一个token和refreshToken,就像用户以经典模式登录一样。
这是正确的做法吗?你怎么看?
提前感谢你的帮助
1条答案
按热度按时间mepcadol1#
最后,我决定重做所有的身份验证,在我的WebApi中实现优秀的OpenIddict库。
因此,My WebApi现在充当授权服务器以及资源服务器,具有授权代码流+ PKCE。
更安全更清晰。