我正在为我们的业务开发 API。
请求应该需要需要 POST http 动词才能检索的 authToken。流程应该像这样工作-
- 用户的客户端将用户名和密码(受 SSL 保护)发布到 GetAuthToken 服务。服务返回身份验证令牌。
- 用户的客户端可以在任何其他请求中使用令牌,不再需要 POST。
我编写了一个方便的休息函数 CheckAuthToken,以允许用户调试他们的工作身份验证令牌是否正确。它需要用户的电子邮件地址和身份验证令牌来检查。这在 SOAP 和通过 POST 中运行良好,但该路由似乎无法通过 GET 运行。
这是 DTO:
[Route("/auth/CheckAuthToken/{EmailAddress}/{AuthToken}")]
public class CheckAuthToken
{
public string EmailAddress { get; set; }
public string AuthToken { get; set; }
}
例如,如果我要求(请注意%2E
,在这篇文章的推荐中:ServiceStack Handler Not Found When Periods Present in Path):
GET /auth/CheckAuthToken/aaron%40meemailsite%2Ecom/Hnot0real0auth0token4mzSBhKwFXY6xQcgX6XqsE%3D HTTP/1.1\r\n
我仍然得到一个 404。似乎在移交给 ServiceStack 之前正在解码期间。
我认识到我可以改用查询字符串变量,提出我的请求:
GET /auth/CheckAuthToken?EmailAddress=aaronb%40bluebookinc%2Ecom&AuthToken=HwjQoKiHD2HSngFeeCH1k4mzSBhKwFXY6xQcgX6XqsE%3D HTTP/1.1\r\n
但是,我希望比这更灵活,尤其是在我的业务层 REST 服务中,这也需要通过电子邮件在某些功能上进行用户识别。
有任何想法吗?