servicestack - ServiceStack ApiKey
问题描述
我将 serviceStack 用于我的第一个 api 服务。
我有自己的表“ MyApiKeysTable ”,我在其中为用户存储多个 api 密钥。我使用实体框架。
如果我使用 OrmLiteAuthRepository 它会创建自己的 apikey 表。
我必须做什么才能使用我自己的表“ MyApiKeysTable ”?
(我不想使用 OrmLite 但仍然继续使用 EntityFramework。)
有一些例子吗?
解决方案
您不能使用自己的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实现作为指南。
推荐阅读
- xquery - 编译时错误:找到“$”而不是“}”
- javascript - 如何根据键值选择对象 - VueJS
- javascript - 来自 JS SPA 的公共 OAuth
- javascript - 在这种情况下,我不明白 $ 符号的含义
- flutter - Flutter 动画:使用 opencontainer 进行 showSearch
- php - 如何在我的代码中用 bind_result 替换 get_result
- ruby-on-rails - 在 ReactJS 中使用 Rails actioncable 更新状态的最佳方法
- javascript - 如何获得 api 响应以角度解决的剩余时间?
- java - 如何解决 Java 套接字中的“java.net.SocketException:连接重置”
- python - IndexError:索引 45 超出轴 0 的范围,大小为 10