如何使用ASP.NET Core 8 Web API向现有Blazor WASM应用程序添加Google身份验证

nzrxty8p  于 6个月前  发布在  .NET
关注(0)|答案(1)|浏览(65)

我正在开发一个Blazor WASM独立前端,连接到我正在开发的ASP.NET Core 8 Web API。
目前,我的身份验证流程非常简单:
1.用户在登录页面中输入其凭据
1.对我的Web API“登录”端点进行调用

  1. Web API返回令牌和刷新令牌
  2. Wasm将其保存到localStorage中,此时用户已通过身份验证。
    1.在每个httpRequest to API之前,拦截器根据过期时间检查令牌是否仍然有效。如果不是,则wasm调用Web API“refreshToken”端点。
    Current Auth flow
    这是目前的工作相当不错。
    首先,我想知道我是否真的在用正确的方法做这件事。它是否足够安全?在Web API中使用OpenIddict不是更好吗?
    但主要的问题是以下一个:我想添加谷歌SSO到我的Blazor Wasm根据microsoft documentation和这里的我的计划。
    1.用户点击“登录与谷歌”,并登录自己
  3. Wasm接收带有IdToken的回调
  4. Wasm将此IdToken发送到我的Web API
  5. Web API验证这是一个实际有效的谷歌令牌,并创建用户,如果不存在。
  6. Web API返回一个token和refreshToken,就像用户以经典模式登录一样。
    这是正确的做法吗?你怎么看?
    提前感谢你的帮助
mepcadol

mepcadol1#

最后,我决定重做所有的身份验证,在我的WebApi中实现优秀的OpenIddict库。
因此,My WebApi现在充当授权服务器以及资源服务器,具有授权代码流+ PKCE。
更安全更清晰。

相关问题