我想创建一个使用Angular2作为前端,使用新的ASPNET 5 WebApi作为后端的应用程序,但当涉及到身份验证/授权时,尽管阅读了所有内容,我觉得我完全没有抓住要点。。。
理想情况下,我想使用Hello.js使用身份提供商(如谷歌或脸书)对用户进行身份验证,我真的不想为用户进行任何形式的本地注册。然后我还想使用ASPNET5WebApi后端来访问我的数据库。
这篇文章准确地描述了我想要的东西,但不是用ASPNET5WebApi后端:https://ole.michelsen.dk/blog/social-signin-spa-jwt-server.html
我不确定我是否正确理解流程:从身份提供者接收到访问令牌后,SPA应将其发送/转发到后端进行验证。WebApi后端应该根据提供者对其进行验证(至少是第一次),并创建自己的令牌(JWT)发送到SPA。SPA只是存储它(本地存储或会话存储),结果是用户登录到我的应用程序中。
这是正确的吗?我想要实现的目标可能实现吗?
我已经研究过其他选项,如OpenIddict、IdentityServer3/4,但据我所知,我会使用这些选项创建自己的身份提供程序,但这并不是我真正需要的。我误解了吗?
谢谢。
据我所知,您想要:
-
与谷歌的身份验证(你不想使用谷歌访问令牌使用谷歌资源)
-
使用jwt令牌对web api后端进行授权。
因此,您需要Identity Server3/4、OpenIddict或编写自己的实现来创建jwt令牌。还有一个类似的问题,答案很好(尤其是@Tseng的答案)。
有关在客户端(angular2)管理jwt令牌,请参阅以下链接:
https://auth0.com/blog/2015/11/10/introducing-angular2-jwt-a-library-for-angular2-authentication/
https://damienbod.com/2016/03/02/angular2-openid-connect-implicit-flow-with-identityserver4/
这里有一个简单的答案。使用https://auth0.com/它在小范围内是免费的,所有细节都由您处理。良好的样本和良好的开源参与者。没有任何关系,只是一个粉丝。