首页 > 解决方案 > ServiceStack ApiKey

问题描述

我将 serviceStack 用于我的第一个 api 服务。

我有自己的表“ MyApiKeysTable ”,我在其中为用户存储多个 api 密钥。我使用实体框架。

如果我使用 OrmLiteAuthRepository 它会创建自己的 apikey 表。

我必须做什么才能使用我自己的表“ MyApiKeysTable ”?

(我不想使用 OrmLite 但仍然继续使用 EntityFramework。)

有一些例子吗?

标签: servicestackapi-key

解决方案


您不能使用自己的ApiKey类型,ServiceStack 的 API Key AuthProvider从实现 IManageApiKeys 接口的Auth Repositories 解析其 API Key ,所有支持 API Key 持久性的ServiceStack Auth Repositories都实现了该接口。

您需要像OrmLiteAuthRepository一样创建自己的 Auth Repository并实现IManageApiKeys您喜欢的方式,但它至少需要返回一个继承该类的ApiKey类。

实现您自己的 Auth Repository 需要相当多的努力,我建议不要这样做,因为OrmLite是一个轻量级的代码优先 POCO ORM,只需要为其OrmLiteConnectionFactory配置一个数据库连接字符串,您仍然可以将 EF 用于您的其余部分应用程序,但我会利用现有的 Auth 存储库。

另一种方法是忽略 ServiceStack 的 API Key Auth Provider 并使用您喜欢的数据访问库实现您自己的,您可以使用ApiKeyAuthProvider实现作为指南。


推荐阅读