1
1
#include < drogon/drogon.h>
2
2
#include < json/json.h>
3
3
#include " mysql.h"
4
+ #include < openssl/sha.h>
4
5
#include " jwt_controller.h"
5
6
#include " msg_controller.h"
6
7
using namespace drogon ;
@@ -27,17 +28,32 @@ void Handle(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr
27
28
res->setBody (output);
28
29
callback (res);
29
30
}
31
+ std::string sha256 (const std::string str){
32
+ unsigned char hash[SHA256_DIGEST_LENGTH];
33
+
34
+ SHA256_CTX sha256;
35
+ SHA256_Init (&sha256);
36
+ SHA256_Update (&sha256, str.c_str (), str.size ());
37
+ SHA256_Final (hash, &sha256);
38
+
39
+ std::stringstream ss;
40
+
41
+ for (int i = 0 ; i < SHA256_DIGEST_LENGTH; i++){
42
+ ss << std::hex << std::setw (2 ) << std::setfill (' 0' ) << static_cast <int >( hash[i] );
43
+ }
44
+ return ss.str ();
45
+ }
30
46
std::string registerUser (const Json::Value& req_json) {
31
47
// std::cout<<"Receive Username : "<<req_json["username"].asString()<<std::endl;
32
48
// std::cout<<"Receive Passwd: "<<req_json["password"].asString()<<std::endl;
33
49
if (sql_check (req_json[" username" ].asString ())){
34
- sql_add (req_json[" username" ].asString (), req_json[" password" ].asString (), req_json[" avatar" ].asInt ());
50
+ sql_add (req_json[" username" ].asString (), sha256 ( req_json[" password" ].asString () ), req_json[" avatar" ].asInt ());
35
51
return " Sign up Success" ;
36
52
}else
37
53
return " User already exist" ;
38
54
}
39
55
std::string loginUser (const Json::Value& req_json) {
40
- if (sql_check (req_json[" username" ].asString (), req_json[" password" ].asString ())){
56
+ if (sql_check (req_json[" username" ].asString (), sha256 ( req_json[" password" ].asString () ))){
41
57
return " Login Success" ;
42
58
}else
43
59
return " Login Failed" ;
0 commit comments