我想在Angular2中完全构建一个应用程序,它将通过向.Net Core Web Api发送调用来与数据库进行通信。有很多关于构建Web Api层的好文章,我的ng2也没关系,但是我很难找到如何为我的Angular 2调用保护Web Api以及可能用于第三方调用的材料。我打开了任何安全机制(Oauth2?)。任何指导都表示赞赏。
答案 0 :(得分:0)
您是否在GitHub上看过这个Azure-Sample?
https://github.com/Azure-Samples/active-directory-angularjs-singlepageapp-dotnet-webapi
希望这有帮助。
答案 1 :(得分:0)
通常使用OAuth2(access_token)来保护 profilestorage=FirebaseStorage.getInstance().getReference().child("Profile_Images");
profilestorage.child(maAuth.getCurrentUser().getUid()).delete().addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Toast.makeText(SharedElementActivity.this,"Image Deleted from storage",Toast.LENGTH_LONG).show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(SharedElementActivity.this,"Failed",Toast.LENGTH_LONG).show();
}
});
。
为此,您需要实现自己的OAuth2令牌生成器服务器,或者您可以使用Identity Server 4(使用Identity Server将为您提供SSO功能)。
登录时,Angular应用程序将接收访问令牌并将其发送到WebApi
的每个请求的标头中,WebApi
将验证访问令牌并授权请求(为此已执行此身份验证服务器)在github上有一个js库和很多样本。
答案 2 :(得分:0)
您可以使用WebAPI上的身份验证和授权来保护应用。与其他答案一样,您可以使用基于令牌的身份验证。你可以找到很多在线资料。保护API的一个主要方面是确保授权用户只能访问他有权访问的那些资源。我注意到许多开发人员忽略了这一点。应用身份验证和授权是不够的,但我们需要确保授权用户无法以相同的权限访问其他用户的数据。