【发布时间】:2018-11-22 18:38:13
【问题描述】:
我有现有的C# ASP.NET WebAPI 2.0 项目,其中包含用于另一个网站 的一些方法。此 WebAPI 项目没有任何身份验证并返回 JSON 数据。第一种方法从 website 获取两个参数:Email 和 Password 然后在 MS SQL 表中检查它并返回 JSON (success 或 wrong):如果 success 然后我创建一些 token 并添加 token 和 user_id 到另一个 MS SQL 表。如果一切正常,此方法返回 token。
[HttpPost]
[Route("api/v1/auth/email-login")]
[ActionName("EmailLogin")]
public IHttpActionResult Postpipeline_EmailLogin([FromBody] PostAuthItem postAuthItem)
{
try
{
int? userId = db.USERS_GetUserId(postAuthItem.Email, postAuthItem.Password).FirstOrDefault();
if (userId == null)
{
return Ok(new
{
Error = "Wrong email or password!"
});
}
else
{
string token = this.GetToken(40);
db.TOKENS_Add(userId, token);
db.SaveChanges();
return Ok(new
{
Token = token
});
}
}
catch (Exception ex)
{
return new System.Web.Http.Results.ResponseMessageResult(Request.CreateErrorResponse((HttpStatusCode)400, new HttpError("Http error! " + ex.Message + " " + ex.InnerException.Message)));
}
}
现在通过 Google 的授权已添加到 网站。所以我需要添加新方法,它将通过谷歌检查成功或错误的身份验证。 网站 开发者只向我发送 access_token,如下所示:
Request:
{
"access_token": "ya47.Kdd_KeQ0mQiTzom20dQ6M83742KMYQpkCUqCZv0UbU2CjhMIuxIT5ugRXwIrOUcV-TGbUztMiRDRPzh0INrGgh7gqXyaIfyQAnNMmP0GhXRc6bbanEiPxV7fK9ss"
}
是否有可能通过此请求检查有效的 Google 用户?
【问题讨论】:
标签: c# asp.net-web-api asp.net-identity google-oauth