浏览代码

Send all data encrypted to DOI

GIN Web sends user info and repository name encrypted to DOI.
Achilleas Koutsou 5 年之前
父节点
当前提交
7ee2e3409a
共有 1 个文件被更改,包括 14 次插入5 次删除
  1. 14 5
      routes/doi.go

+ 14 - 5
routes/doi.go

@@ -1,6 +1,7 @@
 package routes
 
 import (
+	"encoding/json"
 	"net/http"
 	"net/url"
 
@@ -17,9 +18,19 @@ func RequestDOI(c *context.Context) {
 		return
 	}
 
-	repo := c.Repo.Repository.FullName()
 	username := c.User.Name
-	verification, err := libgin.EncryptURLString([]byte(setting.DOI.Key), repo+username)
+	realname := c.User.FullName
+	repo := c.Repo.Repository.FullName()
+	email := c.User.Email
+
+	data := map[string]string{
+		"username":   username,
+		"realname":   realname,
+		"repository": repo,
+		"email":      email,
+	}
+	dataj, _ := json.Marshal(data)
+	regrequest, err := libgin.EncryptURLString([]byte(setting.DOI.Key), string(dataj))
 	if err != nil {
 		log.Error(2, "Could not encrypt secret key: %s", err)
 		c.Status(http.StatusInternalServerError)
@@ -31,9 +42,7 @@ func RequestDOI(c *context.Context) {
 	}
 
 	params := url.Values{}
-	params.Add("repo", repo)
-	params.Add("user", username)
-	params.Add("verification", verification)
+	params.Add("regrequest", regrequest)
 	doiurl.RawQuery = params.Encode()
 	target, _ := url.PathUnescape(doiurl.String())
 	log.Trace(target)