Add user login token
parent
435a12a6bb
commit
76070ac882
|
@ -78,7 +78,7 @@ func apiAuthLogin(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
|
|||
var password string = r.FormValue("password")
|
||||
fmt.Fprintf(w, "Login : User : %s, Password : %s\n\n", username, password)
|
||||
|
||||
var result database.DatabaseResult = database.ExecuteStoredRoutine("CheckUser", username, password)
|
||||
var result database.DatabaseResult = database.ExecuteStoredRoutine("AuthUser", username, password)
|
||||
database.DecodeDatabaseResult(&result)
|
||||
fmt.Println(result)
|
||||
|
||||
|
|
|
@ -126,37 +126,31 @@ var databaseStructure databaseDefinition = databaseDefinition{
|
|||
{
|
||||
Name: "id",
|
||||
Type: "int(11)",
|
||||
IsNullable: false,
|
||||
AutoIncrement: true,
|
||||
Primary: true,
|
||||
},
|
||||
{
|
||||
Name: "name",
|
||||
Type: "varchar(256)",
|
||||
IsNullable: false,
|
||||
Charset: "utf8mb4",
|
||||
Collation: "utf8mb4_unicode_ci",
|
||||
Name: "name",
|
||||
Type: "varchar(256)",
|
||||
Charset: "utf8mb4",
|
||||
Collation: "utf8mb4_unicode_ci",
|
||||
},
|
||||
{
|
||||
Name: "password",
|
||||
Type: "varchar(256)",
|
||||
IsNullable: false,
|
||||
Charset: "utf8mb4",
|
||||
Collation: "utf8mb4_bin",
|
||||
Name: "password",
|
||||
Type: "varchar(256)",
|
||||
Charset: "utf8mb4",
|
||||
Collation: "utf8mb4_bin",
|
||||
},
|
||||
{
|
||||
Name: "password_salt",
|
||||
Type: "varchar(256)",
|
||||
IsNullable: false,
|
||||
Charset: "utf8mb4",
|
||||
Collation: "utf8mb4_bin",
|
||||
Name: "password_salt",
|
||||
Type: "varchar(256)",
|
||||
Charset: "utf8mb4",
|
||||
Collation: "utf8mb4_bin",
|
||||
},
|
||||
{
|
||||
Name: "permission_level",
|
||||
Type: "enum('ADMIN', 'MODERATOR', 'USER')",
|
||||
Default: "'USER'",
|
||||
IsNullable: false,
|
||||
Charset: nil,
|
||||
Name: "permission_level",
|
||||
Type: "enum('ADMIN', 'MODERATOR', 'USER')",
|
||||
Default: "'USER'",
|
||||
},
|
||||
{
|
||||
Name: "email",
|
||||
|
@ -174,16 +168,14 @@ var databaseStructure databaseDefinition = databaseDefinition{
|
|||
{
|
||||
Name: "id",
|
||||
Type: "int(11)",
|
||||
IsNullable: false,
|
||||
AutoIncrement: true,
|
||||
Primary: true,
|
||||
},
|
||||
{
|
||||
Name: "name",
|
||||
Type: "varchar(64)",
|
||||
IsNullable: false,
|
||||
Charset: "utf8mb4",
|
||||
Collation: "utf8mb4_unicode_ci",
|
||||
Name: "name",
|
||||
Type: "varchar(64)",
|
||||
Charset: "utf8mb4",
|
||||
Collation: "utf8mb4_unicode_ci",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -193,16 +185,14 @@ var databaseStructure databaseDefinition = databaseDefinition{
|
|||
{
|
||||
Name: "id",
|
||||
Type: "int(11)",
|
||||
IsNullable: false,
|
||||
AutoIncrement: true,
|
||||
Primary: true,
|
||||
},
|
||||
{
|
||||
Name: "name",
|
||||
Type: "varchar(64)",
|
||||
IsNullable: false,
|
||||
Charset: "utf8mb4",
|
||||
Collation: "utf8mb4_unicode_ci",
|
||||
Name: "name",
|
||||
Type: "varchar(64)",
|
||||
Charset: "utf8mb4",
|
||||
Collation: "utf8mb4_unicode_ci",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -212,16 +202,14 @@ var databaseStructure databaseDefinition = databaseDefinition{
|
|||
{
|
||||
Name: "id",
|
||||
Type: "int(11)",
|
||||
IsNullable: false,
|
||||
AutoIncrement: true,
|
||||
Primary: true,
|
||||
},
|
||||
{
|
||||
Name: "name",
|
||||
Type: "varchar(256)",
|
||||
IsNullable: false,
|
||||
Charset: "utf8mb4",
|
||||
Collation: "utf8mb4_unicode_ci",
|
||||
Name: "name",
|
||||
Type: "varchar(256)",
|
||||
Charset: "utf8mb4",
|
||||
Collation: "utf8mb4_unicode_ci",
|
||||
},
|
||||
{
|
||||
Name: "content",
|
||||
|
@ -240,22 +228,33 @@ var databaseStructure databaseDefinition = databaseDefinition{
|
|||
Collation: "utf8mb4_bin",
|
||||
},
|
||||
{
|
||||
Name: "folder_id",
|
||||
Type: "int(11)",
|
||||
IsNullable: false,
|
||||
Name: "folder_id",
|
||||
Type: "int(11)",
|
||||
},
|
||||
{
|
||||
Name: "date",
|
||||
Type: "datetime",
|
||||
IsNullable: false,
|
||||
Default: "current_timestamp()",
|
||||
Name: "date",
|
||||
Type: "datetime",
|
||||
Default: "current_timestamp()",
|
||||
},
|
||||
{
|
||||
Name: "title",
|
||||
Type: "varchar(256)",
|
||||
IsNullable: false,
|
||||
Charset: "utf8mb4",
|
||||
Collation: "utf8mb4_unicode_ci",
|
||||
Name: "title",
|
||||
Type: "varchar(256)",
|
||||
Charset: "utf8mb4",
|
||||
Collation: "utf8mb4_unicode_ci",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "loginToken",
|
||||
Columns: []columsDefinition{
|
||||
{
|
||||
Name: "id",
|
||||
Type: "VARCHAR(256)",
|
||||
Primary: true,
|
||||
},
|
||||
{
|
||||
Name: "user_id",
|
||||
Type: "int(11)",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -263,23 +262,20 @@ var databaseStructure databaseDefinition = databaseDefinition{
|
|||
Name: "tags_websites",
|
||||
Columns: []columsDefinition{
|
||||
{
|
||||
Name: "tag_id",
|
||||
Type: "int(11)",
|
||||
IsNullable: false,
|
||||
Primary: true,
|
||||
Name: "tag_id",
|
||||
Type: "int(11)",
|
||||
Primary: true,
|
||||
},
|
||||
{
|
||||
Name: "website_id",
|
||||
Type: "int(11)",
|
||||
IsNullable: false,
|
||||
Primary: true,
|
||||
Name: "website_id",
|
||||
Type: "int(11)",
|
||||
Primary: true,
|
||||
},
|
||||
{
|
||||
Name: "value",
|
||||
Type: "varchar(64)",
|
||||
IsNullable: false,
|
||||
Charset: "utf8mb4",
|
||||
Collation: "utf8mb4_unicode_ci",
|
||||
Name: "value",
|
||||
Type: "varchar(64)",
|
||||
Charset: "utf8mb4",
|
||||
Collation: "utf8mb4_unicode_ci",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -369,6 +365,15 @@ var databaseStructure databaseDefinition = databaseDefinition{
|
|||
UpdateRule: "CASCADE",
|
||||
DeleteRule: "CASCADE",
|
||||
},
|
||||
{
|
||||
Name: "FK_loginToken__user_id",
|
||||
Table: "loginToken",
|
||||
ColumnName: "user_id",
|
||||
PointingToTable: "user",
|
||||
PointingToColumn: "id",
|
||||
UpdateRule: "CASCADE",
|
||||
DeleteRule: "CASCADE",
|
||||
},
|
||||
},
|
||||
StoredProcedures: []storedProcedureDefinition{
|
||||
{
|
||||
|
@ -411,7 +416,7 @@ SELECT LAST_INSERT_ID() INTO f_user_id;
|
|||
RETURN f_user_id;`,
|
||||
},
|
||||
{
|
||||
Name: "CheckUser",
|
||||
Name: "AuthUser",
|
||||
Parameters: []storedRoutineParameterDefinition{
|
||||
{
|
||||
Name: "f_user_name",
|
||||
|
@ -427,13 +432,14 @@ RETURN f_user_id;`,
|
|||
},
|
||||
},
|
||||
Return: storedRoutineParameterDefinition{
|
||||
Type: "INT(11)",
|
||||
Type: "VARCHAR(256)",
|
||||
},
|
||||
Command: `
|
||||
DECLARE f_user_id INT(11) DEFAULT NULL;
|
||||
DECLARE f_salt VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
|
||||
DECLARE f_password VARCHAR(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
|
||||
DECLARE f_user VARCHAR(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
DECLARE f_token VARCHAR(256) DEFAULT "";
|
||||
|
||||
SET f_user = LOWER(f_user_name);
|
||||
|
||||
|
@ -442,7 +448,13 @@ SELECT SHA2(CONCAT(f_user, f_user_password, f_salt), 512) INTO f_password;
|
|||
|
||||
SELECT id INTO f_user_id FROM user WHERE name = f_user AND password = f_password LIMIT 1;
|
||||
|
||||
RETURN f_user_id;`,
|
||||
IF f_user_id IS NOT NULL THEN
|
||||
SELECT SHA2(UUID(), 512) INTO f_token;
|
||||
INSERT INTO loginToken(id, user_id) VALUES(f_token, f_user_id);
|
||||
RETURN f_token;
|
||||
ELSE
|
||||
RETURN "";
|
||||
END IF;`,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue