Angular 2和Asp.Net 5 mvc 6 - 身份验证实践

Kub*_*uba 2 authentication asp.net-mvc session-cookies angular

我正在使用angular 2和asp.net 5 mvc 6创建我的第一个spa应用程序.它将是使用基于cookie的身份验证的简单应用程序.我知道我应该使用令牌,但我不需要将身份验证传递给其他应用程序,因此cookie应该足够了.我还决定使用基于权限的授权.Db架构看起来像:

User ---> Role <----> Permission
Run Code Online (Sandbox Code Playgroud)

当用户未经过身份验证时,我的api返回代码401;当他经过身份验证但是他没有访问数据的权限时,我返回403

我已经实现了这个部分: schema

但现在我不知道如何处理客户端中的用户凭据和权限,我有一些问题.我只需要一些指导.

  1. 如何在设置会话后在身份验证中将用户数据存储在spa中?有很多选择.我每次需要用户数据时都可以调用api,例如用户名,电子邮件,或者我可以获取一次并存储在加密的cookie或localStorage中.

  2. 与用户权限相同.我想管理模板中的按钮显示或菜单中的链接等,因为当前用户权限使用*ngIf等指令.我还可以在localStorage中存储用户权限,或者每次路由更改时调用api以获取json:

    {  
        showEditButton: true,
        showHeader: false 
    }
    
    Run Code Online (Sandbox Code Playgroud)

小智 6

这个项目处理以上所有内容:https://github.com/chsakell/aspnet5-angular2-typescript非常值得一看.