databag/net/server/internal/api_authorize.go

35 lines
744 B
Go
Raw Normal View History

2022-01-11 06:20:32 +00:00
package databag
import (
"net/http"
)
2022-01-13 05:23:18 +00:00
func Authorize(w http.ResponseWriter, r *http.Request) {
2022-01-20 23:19:26 +00:00
account, code, res := BearerAppToken(r, true);
if res != nil {
2022-01-20 23:19:26 +00:00
ErrResponse(w, code, res)
return
}
2022-01-20 07:45:53 +00:00
detail := account.AccountDetail
2022-01-18 08:40:39 +00:00
// extract token from body
var token string
2022-01-20 07:45:53 +00:00
res = ParseRequest(r, w, &token)
if res != nil {
ErrResponse(w, http.StatusBadRequest, res)
return
}
2022-01-18 08:40:39 +00:00
2022-01-20 07:45:53 +00:00
// generate auth DataMessage
auth := Authenticate{ Token: token }
msg, res := WriteDataMessage(detail.PrivateKey, detail.PublicKey, detail.KeyType,
APP_SIGNPKCS1V15, account.Guid, APP_MSGAUTHENTICATE, &auth)
if res != nil {
ErrResponse(w, http.StatusInternalServerError, res)
return
}
2022-01-18 08:40:39 +00:00
WriteResponse(w, msg)
2022-01-11 06:20:32 +00:00
}