看起来 ServiceStack 只接受基于会话的身份验证。我正在阅读https://github.com/ServiceStack/ServiceStack/wiki/Authentication-and-authorization,但找不到任何描述如何做我想做的事。
我还查看了http://enehana.nohea.com/general/customizing-iauthprovider-for-servicestack-net-step-by-step/但这也是基于会话的。
我想做的事情与 WebAPI 与个人用户帐户的工作方式非常相似。
我想将此发送到 API:
POST http://localhost:49436/Token HTTP/1.1
User-Agent: Fiddler
Host: localhost:49436
Content-Type: application/x-www-form-urlencoded
Content-Length: 55
grant_type=password&username=Alice&password=password123
然后,如果在我的自定义身份验证方法中找到用户,它会返回:
{
"access_token":"boQtj0SCGz2GFGz[...]",
"token_type":"bearer",
"expires_in":1209599,
"userName":"Alice",
".issued":"Mon, 14 Oct 2013 06:53:32 GMT",
".expires":"Mon, 28 Oct 2013 06:53:32 GMT"
}
然后,客户端应用程序可以通过将如下值附加到 HTTP 请求来在后续请求中发送 access_token:
Authorization: Bearer boQtj0SCGz2GFGz[...]
这在 ServiceStack 中可行吗?
编辑:使用 .NET 的 WebAPI 实现:http ://www.asp.net/web-api/overview/security/individual-accounts-in-web-api