forked from x/icebergs
opt wx.login
This commit is contained in:
parent
3c63abbbe2
commit
9d3e1fa3fb
@ -38,7 +38,7 @@ func init() {
|
|||||||
_sess_create(m, m.Option(USERNAME), UA, m.Option(ice.MSG_USERUA), IP, m.Option(ice.MSG_USERIP))
|
_sess_create(m, m.Option(USERNAME), UA, m.Option(ice.MSG_USERUA), IP, m.Option(ice.MSG_USERIP))
|
||||||
}},
|
}},
|
||||||
CHECK: {Name: "check sessid*", Hand: func(m *ice.Message, arg ...string) { _sess_check(m, m.Option(ice.MSG_SESSID)) }},
|
CHECK: {Name: "check sessid*", Hand: func(m *ice.Message, arg ...string) { _sess_check(m, m.Option(ice.MSG_SESSID)) }},
|
||||||
}, mdb.ImportantHashAction(mdb.EXPIRE, mdb.MONTH, mdb.SHORT, mdb.UNIQ, mdb.FIELD, "time,hash,usernick,username,userrole,ua,ip"))},
|
}, mdb.ImportantHashAction(mdb.EXPIRE, mdb.MONTH, mdb.SHORT, mdb.UNIQ, mdb.FIELD, "time,hash,usernick,username,userrole,ip,ua"))},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -178,6 +178,7 @@ const (
|
|||||||
CHAT_HEADER = "web.chat.header"
|
CHAT_HEADER = "web.chat.header"
|
||||||
CHAT_IFRAME = "web.chat.iframe"
|
CHAT_IFRAME = "web.chat.iframe"
|
||||||
CHAT_FAVOR = "web.chat.favor"
|
CHAT_FAVOR = "web.chat.favor"
|
||||||
|
CHAT_GRANT = "web.chat.grant"
|
||||||
CHAT_FLOWS = "web.chat.flows"
|
CHAT_FLOWS = "web.chat.flows"
|
||||||
TEAM_PLAN = "web.team.plan"
|
TEAM_PLAN = "web.team.plan"
|
||||||
)
|
)
|
||||||
|
@ -197,6 +197,7 @@ const (
|
|||||||
ORIGIN = "origin"
|
ORIGIN = "origin"
|
||||||
FORM = "form"
|
FORM = "form"
|
||||||
BODY = "body"
|
BODY = "body"
|
||||||
|
HOME = "home"
|
||||||
|
|
||||||
SERVE_START = "serve.start"
|
SERVE_START = "serve.start"
|
||||||
)
|
)
|
||||||
|
@ -173,6 +173,7 @@ const (
|
|||||||
)
|
)
|
||||||
const (
|
const (
|
||||||
SPACE_LOGIN = "space.login"
|
SPACE_LOGIN = "space.login"
|
||||||
|
SPACE_GRANT = "space.grant"
|
||||||
)
|
)
|
||||||
const SPACE = "space"
|
const SPACE = "space"
|
||||||
|
|
||||||
@ -255,7 +256,8 @@ func init() {
|
|||||||
}},
|
}},
|
||||||
DOMAIN: {Hand: func(m *ice.Message, arg ...string) { m.Echo(_space_domain(m)) }},
|
DOMAIN: {Hand: func(m *ice.Message, arg ...string) { m.Echo(_space_domain(m)) }},
|
||||||
LOGIN: {Help: "授权", Hand: func(m *ice.Message, arg ...string) {
|
LOGIN: {Help: "授权", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Option(ice.MSG_USERUA, m.Cmdv("", kit.Select(m.Option(mdb.NAME), arg, 0), ice.MSG_USERUA))
|
msg := m.Cmd("", kit.Select(m.Option(mdb.NAME), arg, 0))
|
||||||
|
m.Options(ice.MSG_USERIP, msg.Append(aaa.IP), ice.MSG_USERUA, msg.Append(aaa.UA))
|
||||||
m.Cmd("", kit.Select(m.Option(mdb.NAME), arg, 0), ice.MSG_SESSID, aaa.SessCreate(m, m.Option(ice.MSG_USERNAME)))
|
m.Cmd("", kit.Select(m.Option(mdb.NAME), arg, 0), ice.MSG_SESSID, aaa.SessCreate(m, m.Option(ice.MSG_USERNAME)))
|
||||||
}},
|
}},
|
||||||
OPEN: {Hand: func(m *ice.Message, arg ...string) {
|
OPEN: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
@ -25,9 +25,7 @@ func init() {
|
|||||||
m.Sleep30ms(web.SPACE, m.Option(mdb.NAME), cli.PWD, m.Option(mdb.NAME), link, m.Cmdx(cli.QRCODE, link))
|
m.Sleep30ms(web.SPACE, m.Option(mdb.NAME), cli.PWD, m.Option(mdb.NAME), link, m.Cmdx(cli.QRCODE, link))
|
||||||
})
|
})
|
||||||
}},
|
}},
|
||||||
"home": {Help: "首页", Hand: func(m *ice.Message, arg ...string) {
|
web.HOME: {Help: "首页", Hand: func(m *ice.Message, arg ...string) { m.ProcessOpen(web.MergeLink(m, web.CHAT_PORTAL)) }},
|
||||||
m.ProcessOpen(web.MergeLink(m, "/chat/portal/"))
|
|
||||||
}},
|
|
||||||
aaa.CONFIRM: {Help: "授权", Hand: func(m *ice.Message, arg ...string) {
|
aaa.CONFIRM: {Help: "授权", Hand: func(m *ice.Message, arg ...string) {
|
||||||
if m.Warn(m.R.Method == http.MethodGet, ice.ErrNotAllow) {
|
if m.Warn(m.R.Method == http.MethodGet, ice.ErrNotAllow) {
|
||||||
return
|
return
|
||||||
@ -37,7 +35,7 @@ func init() {
|
|||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
if m.IsWeixinUA() {
|
if m.IsWeixinUA() {
|
||||||
m.Option(ice.MSG_USERUA, msg.Append(ice.MSG_USERUA))
|
m.Options(ice.MSG_USERIP, msg.Append(aaa.IP), ice.MSG_USERUA, msg.Append(aaa.UA))
|
||||||
m.Cmd(web.SPACE, m.Option(web.SPACE), ice.MSG_SESSID, aaa.SessCreate(m, m.Option(ice.MSG_USERNAME)))
|
m.Cmd(web.SPACE, m.Option(web.SPACE), ice.MSG_SESSID, aaa.SessCreate(m, m.Option(ice.MSG_USERNAME)))
|
||||||
m.Echo(ice.SUCCESS)
|
m.Echo(ice.SUCCESS)
|
||||||
} else {
|
} else {
|
||||||
@ -46,6 +44,7 @@ func init() {
|
|||||||
m.Cmd(web.SPACE, m.Option(web.SPACE), ice.MSG_SESSID, aaa.SessCreate(m, m.Option(ice.MSG_USERNAME)))
|
m.Cmd(web.SPACE, m.Option(web.SPACE), ice.MSG_SESSID, aaa.SessCreate(m, m.Option(ice.MSG_USERNAME)))
|
||||||
m.ProcessLocation(web.MergeURL2(m, msg.Append(mdb.TEXT)))
|
m.ProcessLocation(web.MergeURL2(m, msg.Append(mdb.TEXT)))
|
||||||
}
|
}
|
||||||
|
gdb.Event(m, web.SPACE_GRANT, m.OptionSimple(web.SPACE))
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
}, aaa.RoleAction(aaa.CONFIRM), gdb.EventsAction(web.SPACE_LOGIN)), Hand: func(m *ice.Message, arg ...string) {
|
}, aaa.RoleAction(aaa.CONFIRM), gdb.EventsAction(web.SPACE_LOGIN)), Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
@ -9,6 +9,8 @@ import (
|
|||||||
"shylinux.com/x/icebergs/base/aaa"
|
"shylinux.com/x/icebergs/base/aaa"
|
||||||
"shylinux.com/x/icebergs/base/cli"
|
"shylinux.com/x/icebergs/base/cli"
|
||||||
"shylinux.com/x/icebergs/base/ctx"
|
"shylinux.com/x/icebergs/base/ctx"
|
||||||
|
"shylinux.com/x/icebergs/base/gdb"
|
||||||
|
"shylinux.com/x/icebergs/base/log"
|
||||||
"shylinux.com/x/icebergs/base/mdb"
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
"shylinux.com/x/icebergs/base/tcp"
|
"shylinux.com/x/icebergs/base/tcp"
|
||||||
"shylinux.com/x/icebergs/base/web"
|
"shylinux.com/x/icebergs/base/web"
|
||||||
@ -52,8 +54,8 @@ func init() {
|
|||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Cmd(web.SPIDE, mdb.CREATE, WX, mdb.Config(m, tcp.SERVER))
|
m.Cmd(web.SPIDE, mdb.CREATE, WX, mdb.Config(m, tcp.SERVER))
|
||||||
}},
|
}},
|
||||||
mdb.CREATE: {Name: "create usernick access* appid* secret* token* icons qrcode", Hand: func(m *ice.Message, arg ...string) {
|
mdb.CREATE: {Name: "create type=web,app usernick access* appid* secret* token* icons qrcode", Hand: func(m *ice.Message, arg ...string) {
|
||||||
mdb.HashCreate(m, m.OptionSimple(aaa.USERNICK, ACCESS, APPID, SECRET, TOKEN, mdb.ICONS, cli.QRCODE))
|
mdb.HashCreate(m, m.OptionSimple(mdb.TYPE, aaa.USERNICK, ACCESS, APPID, SECRET, TOKEN, mdb.ICONS, cli.QRCODE))
|
||||||
ctx.ConfigFromOption(m, ACCESS, APPID, TOKEN)
|
ctx.ConfigFromOption(m, ACCESS, APPID, TOKEN)
|
||||||
}},
|
}},
|
||||||
aaa.CHECK: {Hand: func(m *ice.Message, arg ...string) {
|
aaa.CHECK: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
@ -88,10 +90,22 @@ func init() {
|
|||||||
ctx.INDEX, m.PrefixKey(), ctx.ARGS, kit.Join(kit.Simple(aaa.LOGIN, m.Option(ACCESS))))
|
ctx.INDEX, m.PrefixKey(), ctx.ARGS, kit.Join(kit.Simple(aaa.LOGIN, m.Option(ACCESS))))
|
||||||
}},
|
}},
|
||||||
aaa.LOGIN: {Hand: func(m *ice.Message, arg ...string) {
|
aaa.LOGIN: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Options(ACCESS, arg[0]).Cmdy(SCAN, mdb.CREATE, mdb.TYPE, "QR_STR_SCENE",
|
if m.Cmd("", m.Option(ACCESS, arg[0])).Append(mdb.TYPE) == ice.WEB {
|
||||||
mdb.NAME, "授权登录", mdb.TEXT, m.Option(web.SPACE), ctx.INDEX, "web.chat.grant", ctx.ARGS, m.Option(web.SPACE))
|
m.Cmdy(SCAN, mdb.CREATE, mdb.TYPE, QR_STR_SCENE, mdb.NAME, "授权登录", mdb.TEXT, m.Option(web.SPACE),
|
||||||
|
ctx.INDEX, web.CHAT_GRANT, ctx.ARGS, m.Option(web.SPACE))
|
||||||
|
} else {
|
||||||
|
h := m.Cmdx(IDE, mdb.CREATE, mdb.NAME, m.Option(web.SPACE), PAGES, "pages/action/action",
|
||||||
|
ctx.INDEX, web.CHAT_GRANT, ctx.ARGS, kit.JoinQuery(m.OptionSimple(web.SPACE, log.DEBUG)...))
|
||||||
|
m.Echo(m.Cmdx(SCAN, UNLIMIT, SCENE, h, ENV, "release", mdb.NAME, m.Option(web.SPACE)))
|
||||||
|
}
|
||||||
}},
|
}},
|
||||||
}, aaa.RoleAction(aaa.LOGIN), mdb.ImportantHashAction(mdb.SHORT, ACCESS, mdb.FIELD, "time,access,icons,usernick,appid", tcp.SERVER, CGI_BIN)), Hand: func(m *ice.Message, arg ...string) {
|
web.SPACE_GRANT: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
if strings.HasPrefix(m.Option(ice.MSG_REFERER), "https://servicewechat.com/") {
|
||||||
|
m.Cmd(mdb.PRUNES, m.Prefix(SCAN), "", mdb.HASH, mdb.NAME, m.Option(web.SPACE))
|
||||||
|
m.Cmd(mdb.PRUNES, m.Prefix(IDE), "", mdb.HASH, mdb.NAME, m.Option(web.SPACE))
|
||||||
|
}
|
||||||
|
}},
|
||||||
|
}, aaa.RoleAction(aaa.LOGIN), gdb.EventsAction(web.SPACE_GRANT), mdb.ImportantHashAction(mdb.SHORT, ACCESS, mdb.FIELD, "time,type,access,icons,usernick,appid", tcp.SERVER, CGI_BIN)), Hand: func(m *ice.Message, arg ...string) {
|
||||||
mdb.HashSelect(m, arg...).PushAction(web.SSO, mdb.REMOVE).StatusTimeCount(mdb.ConfigSimple(m, ACCESS, APPID), web.SERVE, web.MergeLink(m, "/chat/wx/login/"))
|
mdb.HashSelect(m, arg...).PushAction(web.SSO, mdb.REMOVE).StatusTimeCount(mdb.ConfigSimple(m, ACCESS, APPID), web.SERVE, web.MergeLink(m, "/chat/wx/login/"))
|
||||||
m.RewriteAppend(func(value, key string, index int) string {
|
m.RewriteAppend(func(value, key string, index int) string {
|
||||||
kit.If(key == cli.QRCODE, func() { value = ice.Render(m, ice.RENDER_QRCODE, value) })
|
kit.If(key == cli.QRCODE, func() { value = ice.Render(m, ice.RENDER_QRCODE, value) })
|
||||||
|
@ -114,7 +114,7 @@ func init() {
|
|||||||
}
|
}
|
||||||
if mdb.HashSelect(m, arg...).PushAction(AUTO_PREVIEW, PREVIEW, PUSH, mdb.REMOVE).Action(mdb.CREATE, ice.APP, aaa.LOGIN, web.ADMIN, DOC); len(arg) > 0 {
|
if mdb.HashSelect(m, arg...).PushAction(AUTO_PREVIEW, PREVIEW, PUSH, mdb.REMOVE).Action(mdb.CREATE, ice.APP, aaa.LOGIN, web.ADMIN, DOC); len(arg) > 0 {
|
||||||
m.Options(m.AppendSimple(web.SPACE, ctx.INDEX, ctx.ARGS, tcp.WIFI))
|
m.Options(m.AppendSimple(web.SPACE, ctx.INDEX, ctx.ARGS, tcp.WIFI))
|
||||||
p := kit.MergeURL2(web.UserHost(m), path.Join(nfs.PS+m.Append(PAGES)), _ide_args(m))
|
p := kit.MergeURL2(kit.Select(web.UserHost(m), m.Option(web.SERVE)), path.Join(nfs.PS+m.Append(PAGES)), _ide_args(m))
|
||||||
m.PushQRCode(cli.QRCODE, p).Push(web.LINK, p).Echo(p)
|
m.PushQRCode(cli.QRCODE, p).Push(web.LINK, p).Echo(p)
|
||||||
}
|
}
|
||||||
p := mdb.Config(m, CURRENT)
|
p := mdb.Config(m, CURRENT)
|
||||||
|
@ -16,16 +16,16 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
EXPIRE_SECONDS = "expire_seconds"
|
UNLIMIT = "unlimit"
|
||||||
|
EXPIRE_SECONDS = "expire_seconds"
|
||||||
|
QR_STR_SCENE = "QR_STR_SCENE"
|
||||||
|
QR_LIMIT_STR_SCENE = "QR_LIMIT_STR_SCENE"
|
||||||
)
|
)
|
||||||
const SCAN = "scan"
|
const SCAN = "scan"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
const (
|
const (
|
||||||
UNLIMIT = "unlimit"
|
IS_HYALINE = "is_hyaline"
|
||||||
IS_HYALINE = "is_hyaline"
|
|
||||||
QR_STR_SCENE = "QR_STR_SCENE"
|
|
||||||
QR_LIMIT_STR_SCENE = "QR_LIMIT_STR_SCENE"
|
|
||||||
)
|
)
|
||||||
Index.MergeCommands(ice.Commands{
|
Index.MergeCommands(ice.Commands{
|
||||||
SCAN: {Name: "scan access hash auto", Help: "桌牌", Meta: kit.Merge(Meta(), kit.Dict(ice.CTX_TRANS, kit.Dict(html.VALUE, kit.Dict(
|
SCAN: {Name: "scan access hash auto", Help: "桌牌", Meta: kit.Merge(Meta(), kit.Dict(ice.CTX_TRANS, kit.Dict(html.VALUE, kit.Dict(
|
||||||
@ -44,7 +44,7 @@ func init() {
|
|||||||
mdb.HashModify(m, mdb.HASH, h, mdb.LINK, kit.Value(res, web.URL), mdb.TIME, m.Time(kit.Format("%ss", kit.Select("60", m.Option(EXPIRE_SECONDS)))))
|
mdb.HashModify(m, mdb.HASH, h, mdb.LINK, kit.Value(res, web.URL), mdb.TIME, m.Time(kit.Format("%ss", kit.Select("60", m.Option(EXPIRE_SECONDS)))))
|
||||||
m.EchoQRCode(kit.Format(kit.Value(res, web.URL)))
|
m.EchoQRCode(kit.Format(kit.Value(res, web.URL)))
|
||||||
}},
|
}},
|
||||||
UNLIMIT: {Name: "unlimit scene* env*=develop,release,trial,develop is_hyaline=true,false", Help: "小程序码", Hand: func(m *ice.Message, arg ...string) {
|
UNLIMIT: {Name: "unlimit scene* env*=develop,release,trial,develop is_hyaline=true,false name", Help: "小程序码", Hand: func(m *ice.Message, arg ...string) {
|
||||||
defer m.ProcessInner()
|
defer m.ProcessInner()
|
||||||
scene := m.Option(SCENE)
|
scene := m.Option(SCENE)
|
||||||
meta, info := "", m.Cmd(IDE, scene)
|
meta, info := "", m.Cmd(IDE, scene)
|
||||||
@ -60,12 +60,13 @@ func init() {
|
|||||||
meta = path.Join("s", u.Host, scene)
|
meta = path.Join("s", u.Host, scene)
|
||||||
}
|
}
|
||||||
msg := spidePost(m, WXACODE_UNLIMIT, web.SPIDE_DATA, kit.Format(kit.Dict(
|
msg := spidePost(m, WXACODE_UNLIMIT, web.SPIDE_DATA, kit.Format(kit.Dict(
|
||||||
"env_version", m.Option(ENV), "page", info.Append(PAGES), SCENE, meta, IS_HYALINE, m.Option(IS_HYALINE) == ice.TRUE, html.WIDTH, 370,
|
"env_version", m.Option(ENV), "page", info.Append(PAGES), SCENE, meta, IS_HYALINE, m.Option(IS_HYALINE) == ice.TRUE, html.WIDTH, 360,
|
||||||
)))
|
)))
|
||||||
switch kit.Select("", kit.Split(msg.Option(web.ContentType), "; "), 0) {
|
switch kit.Select("", kit.Split(msg.Option(web.ContentType), "; "), 0) {
|
||||||
case web.IMAGE_JPEG:
|
case web.IMAGE_JPEG:
|
||||||
image := m.Cmd(web.CACHE, web.WRITE, mdb.TYPE, web.IMAGE_JPEG, mdb.NAME, scene, kit.Dict(mdb.TEXT, msg.Result())).Append(mdb.HASH)
|
image := m.Cmd(web.CACHE, web.WRITE, mdb.TYPE, web.IMAGE_JPEG, mdb.NAME, scene, kit.Dict(mdb.TEXT, msg.Result())).Append(mdb.HASH)
|
||||||
mdb.HashSelects(m, mdb.HashCreate(m.Spawn(), mdb.TEXT, meta, nfs.IMAGE, image, ctx.INDEX, m.Prefix(IDE), ctx.ARGS, scene, mdb.TYPE, m.Option(ENV)))
|
mdb.HashSelects(m, mdb.HashCreate(m.Spawn(), m.OptionSimple(mdb.NAME), mdb.TEXT, meta, nfs.IMAGE, image, ctx.INDEX, m.Prefix(IDE), ctx.ARGS, scene, mdb.TYPE, m.Option(ENV)))
|
||||||
|
m.EchoImages(web.SHARE_CACHE + m.Append(nfs.IMAGE))
|
||||||
default:
|
default:
|
||||||
m.Echo(msg.Result())
|
m.Echo(msg.Result())
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user