Initial commit
This commit is contained in:
52
controllers/registration.go
Normal file
52
controllers/registration.go
Normal file
@@ -0,0 +1,52 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"log"
|
||||
"oc-auth/models"
|
||||
"strings"
|
||||
|
||||
beego "github.com/beego/beego/v2/server/web"
|
||||
"github.com/nats-io/nats.go"
|
||||
)
|
||||
|
||||
// Operations about auth
|
||||
type RegistrationController struct {
|
||||
beego.Controller
|
||||
}
|
||||
|
||||
// @Title Create
|
||||
// @Description create auths
|
||||
// @Param body body models.Application true "The app info"
|
||||
// @Success 200 {string} models.auth.Id
|
||||
// @Failure 403 body is empty
|
||||
// @router / [post]
|
||||
func (o *RegistrationController) Post() {
|
||||
var app models.Application
|
||||
// Store the app info in the nats server
|
||||
err := json.Unmarshal(o.Ctx.Input.RequestBody, &app)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
servers := []string{"nats://127.0.0.1:1222", "nats://127.0.0.1:1223", "nats://127.0.0.1:1224"}
|
||||
|
||||
nc, err := nats.Connect(strings.Join(servers, ","))
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer nc.Close()
|
||||
js, err := nc.JetStream(nats.PublishAsyncMaxPending(256))
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
kv, err := js.KeyValue("auth")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
kv.Put(app.ClientId, o.Ctx.Input.RequestBody)
|
||||
// register to OIDC server
|
||||
|
||||
// store and return Id or post with UUID
|
||||
o.Data["json"] = map[string]string{"Id": "?"}
|
||||
o.ServeJSON()
|
||||
}
|
||||
Reference in New Issue
Block a user