support multiserverAddress in start-http-auth URI

This commit is contained in:
Andre Staltz 2021-03-29 12:34:38 +03:00
parent 8821b99e27
commit c6397c50d3
No known key found for this signature in database
GPG Key ID: 9EDE23EA7E8A4890
2 changed files with 11 additions and 3 deletions

View File

@ -60,7 +60,8 @@ const sessionLifetime = time.Hour * 24
type WithSSBHandler struct {
render *render.Renderer
roomID refs.FeedRef
roomID refs.FeedRef
muxrpcHostAndPort string
membersdb roomdb.MembersService
aliasesdb roomdb.AliasesService
@ -77,6 +78,7 @@ func NewWithSSBHandler(
m *mux.Router,
r *render.Renderer,
roomID refs.FeedRef,
muxrpcHostAndPort string,
endpoints network.Endpoints,
aliasDB roomdb.AliasesService,
membersDB roomdb.MembersService,
@ -88,6 +90,7 @@ func NewWithSSBHandler(
var ssb WithSSBHandler
ssb.render = r
ssb.roomID = roomID
ssb.muxrpcHostAndPort = muxrpcHostAndPort
ssb.aliasesdb = aliasDB
ssb.membersdb = membersDB
ssb.endpoints = endpoints
@ -344,6 +347,9 @@ func (h WithSSBHandler) serverInitiated() (templateData, error) {
queryParams.Set("action", "start-http-auth")
queryParams.Set("sid", h.roomID.Ref())
queryParams.Set("sc", sc)
var roomPubKey = base64.StdEncoding.EncodeToString(h.roomID.PubKey())
var msaddr = fmt.Sprintf("net:%s~shs:%s", h.muxrpcHostAndPort, roomPubKey)
queryParams.Set("multiserverAddress", msaddr)
var startAuthURI url.URL
startAuthURI.Scheme = "ssb"

View File

@ -231,11 +231,13 @@ func New(
mainMux := &http.ServeMux{}
// start hooking up handlers to the router
var muxrpcHostAndPort = fmt.Sprintf("%s:%d", netInfo.Domain, netInfo.PortMUXRPC)
authWithSSB := roomsAuth.NewWithSSBHandler(
m,
r,
netInfo.RoomID,
muxrpcHostAndPort,
roomEndpoints,
dbs.Aliases,
dbs.Members,
@ -305,7 +307,7 @@ func New(
db: dbs.Aliases,
roomID: netInfo.RoomID,
muxrpcHostAndPort: fmt.Sprintf("%s:%d", netInfo.Domain, netInfo.PortMUXRPC),
muxrpcHostAndPort: muxrpcHostAndPort,
}
m.Get(router.CompleteAliasResolve).HandlerFunc(ah.resolve)
@ -313,7 +315,7 @@ func New(
invites: dbs.Invites,
roomPubKey: netInfo.RoomID.PubKey(),
muxrpcHostAndPort: fmt.Sprintf("%s:%d", netInfo.Domain, netInfo.PortMUXRPC),
muxrpcHostAndPort: muxrpcHostAndPort,
}
m.Get(router.CompleteInviteAccept).Handler(r.HTML("invite/accept.tmpl", ih.acceptForm))
m.Get(router.CompleteInviteConsume).Handler(r.HTML("invite/consumed.tmpl", ih.consume))