各位先進好,小弟不才,專題到了尾聲,發現一個最基本的功能不會寫...
就是登入功能,小弟對於這塊並不熟悉,只用到最簡單的GET()與POST()來串接前台。
目前架構是這樣的,API中用資料庫模型來連接MSSQL,在controller中使用GET與POST
這是GET資料庫中"DATA"欄位的所有值,並且輸出JSON,以利前端使用。
public object Get()
{
using (apidataEntities entities = new apidataEntities())
{
var SQLjsonndata = entities.DATAs.ToList();
return new
{
DATA = SQLjsonndata
};
}
}
這是POST的使用,因為我們有作到APP的推播功能,所以利用POST把手機的TOKEN丟到MSSQL中。
public void Post([FromBody]FCMToken tk)
{
using (apidataEntities entities = new apidataEntities())
{
entities.FCMTokens.Add(tk);
entities.SaveChanges();
}
}
API僅利用以上兩個功能
小弟的問題是,如何使用POST呈現帳號密碼驗證的功能(到MSSQL中的帳號密碼TALBE去驗證、TABLE內只有兩個欄位"ID","PASSWORD")
想要前台利用我的WEB API URL POST() 輸入一組ID與PASSWORD,到後台(API端MSSQL比對資料表),如果資料相符回傳json字串供前台判斷 true => 登入
false => 登入失敗
小弟研究了許久,有好多種形形色色的加密模式等,但是我們沒有什麼珍貴的資料需要保護,只需簡單的驗證模式,因為C#語法不熟,所以POST中也不知道怎麼呼叫SQL欄位來作比對,麻煩高手們救救我
如果只是要簡單的login判斷id和password,應該就是這樣
但是我不認為這能真正實現登入的作用,只是用來應付作業,可能還可以。
在大學期間還是把該學的學一學,現在不學,以後出來工作還是要還的
[HttpPost]
public IActionResult Login([FromBody] LoginRequest loginRequest)
{
using (apidataEntities entities = new apidataEntities())
{
var user = entities.Users.where(x => x.Id == loginRequest.Id && x.Password == loginRequest.Password).FirstOrDefault();
if(user == null)
{
return Json(new { result = false });
}
else
{
return Json(new { result = true });
}
}
}
把問題拆開,post歸post,sql歸sql,驗證歸驗證