我是WebAPI的新手,想了解这一点。假设用户正在尝试登录,登录过程应返回创建并存储在SQL数据库中的GUID“令牌”...或“电子邮件不存在”或“电子邮件仍在等待确认”。
假设输入是一个LoginName和Password,APIController返回的是什么,将TOKEN放在这个案例或那些消息的正确方法在哪里?
问题1:
什么应该是APIController方法SIGNATURE?
......一个有几个属性的类?
我应该如何将令牌返回给客户端?
...在标题内部或作为结果程序的一部分?
问题2:
用户被阻止了什么,我不应该返回HttpStatusCode.Forbidden或类似的东西吗?如果签名期望课程返回,我怎么能这样做?
答案 0 :(得分:1)
您可以定义包含所需所有结果信息的类。
public class ApiLoginResult
{
public bool IsSuccess { get; set; }
public string Message { get; set; }
public string AccessToken { get; set; }
public DateTime Expiration { get; set; }
}
您的方法签名可以定义包含状态代码和数据的HttpResponseMessage类型的返回。
public HttpResponseMessage Login(string username, string password)
要返回ApiLoginResult消息,请使用HttpRequestMessage.CreateResponse方法。
return Request.CreateResponse<ApiLoginResult>(statusCode, result);