/
paseto.go
66 lines (60 loc) · 1.66 KB
/
paseto.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package lapak
import (
"encoding/json"
"net/http"
"os"
"github.com/whatsauth/watoken"
)
// <--- ini Login Email & Register Email --->
func Login(Privatekey, MongoEnv, dbname, Colname string, r *http.Request) string {
var resp Credential
mconn := SetConnection(MongoEnv, dbname)
var datauser User
err := json.NewDecoder(r.Body).Decode(&datauser)
if err != nil {
resp.Message = "error parsing application/json: " + err.Error()
} else {
if IsPasswordValid(mconn, Colname, datauser) {
tokenstring, err := watoken.Encode(datauser.Username, os.Getenv(Privatekey))
if err != nil {
resp.Message = "Gagal Encode Token : " + err.Error()
} else {
resp.Status = true
resp.Message = "Selamat Datang User"
resp.Token = tokenstring
}
} else {
resp.Message = "Password Salah"
}
}
return GCFReturnStruct(resp)
}
// return struct
func GCFReturnStruct(DataStruct any) string {
jsondata, _ := json.Marshal(DataStruct)
return string(jsondata)
}
func ReturnStringStruct(Data any) string {
jsonee, _ := json.Marshal(Data)
return string(jsonee)
}
func Register(Mongoenv, dbname string, r *http.Request) string {
resp := new(Credential)
userdata := new(User)
resp.Status = false
conn := SetConnection(Mongoenv, dbname)
err := json.NewDecoder(r.Body).Decode(&userdata)
if err != nil {
resp.Message = "error parsing application/json: " + err.Error()
} else {
resp.Status = true
hash, err := HashPass(userdata.Password)
if err != nil {
resp.Message = "Gagal Hash Password" + err.Error()
}
InsertUserdata(conn, userdata.Username, userdata.Role, hash)
resp.Message = "Berhasil Input data"
}
response := ReturnStringStruct(resp)
return response
}