我只是在寻求有关如何实施这一目标的反馈意见:
我的系统中有两种类型的用户需要身份验证,用户&管理员。现在他们将要执行的任务以及我存储的数据保证他们每个人都有一个单独的数据库表来存储他们的信息/身份验证信息。
我已经实施了一个名为CredentialsAuthProvider
的有效UserCredentialsProvider
,可以/auth/credentials
对用户进行身份验证。逻辑检查数据库中的User
表并进行身份验证。现在要对管理员进行身份验证,我应该实现第二个名为CredentialsAuthProvider
的{{1}},并在AdminCredentialsAuthProvider
和/user/auth/credentials
等不同路由上注册,或者在同一/admin/auth/credentials
内实现管理逻辑。 1 {} TryAuthenticate
。
如果以上是解决方案,我将如何在注册UserCredentialsProvider
时注册单独路线或区分admin / user。
任何帮助都会很棒。谢谢。
答案 0 :(得分:1)
我会坚持只有一个端点和一个提供商进行身份验证。这将大大简化身份验证。
您的身份验证提供商需要检查用户和管理员表。一旦你有了,我会将用户和管理表中的所有数据转换为一个组合的用户资源。管理员应表示为具有“管理员”角色的用户。这样,您仍然可以利用ServiceStack中内置的角色。
换句话说,我会在某种数据访问层下扫除复杂性,以便你的端点保持良好和干净。