Foxtable(狐表)用户栏目专家坐堂 → 符合条件后自动跳转怎么写?


  共有7893人关注过本帖树形打印复制链接

主题:符合条件后自动跳转怎么写?

帅哥,在线噢!
有点蓝
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106734 积分:542871 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/9 22:20:00 [显示全部帖子]

1、放到想打开页面的地方
2、一个公众号的appid都是固定的,如果是不同公众号,指定不同的地址即可

 回到顶部
帅哥,在线噢!
有点蓝
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106734 积分:542871 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/10 8:37:00 [显示全部帖子]

自定义菜单绑定的url设置为授权模式url,然后根据授权获取的openid,再跳转到不同的页面

比如原来自定义菜单绑定的url为:http://www.foxtable.com/abc.htm
改为授权模式后绑定的url为:https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8acdb7df5beb68fd&redirect_uri=http%3a%2f%2fwexin.foxtable.com%2fabc.htm&response_type=code&scope=snsapi_base&state=123#wechat_redirect

然后在abc.htm页面里获取openid,再跳转到不同的页面

 回到顶部
帅哥,在线噢!
有点蓝
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106734 积分:542871 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/10 11:39:00 [显示全部帖子]

建议都做授权验证,避免A用户访问b.htm,b用户访问a.htm这种情况

 回到顶部
帅哥,在线噢!
有点蓝
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106734 积分:542871 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/10 16:06:00 [显示全部帖子]

和帮助的用法一样,在加入页面之前统一验证即可:http://www.foxtable.com/mobilehelp/topics/0154.htm

把帮助的用法改为授权验证即可,也不需要使用cookie了
[此贴子已经被作者于2021/3/10 16:06:44编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106734 积分:542871 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/10 16:27:00 [显示全部帖子]

就是19楼的用法啊

 回到顶部
帅哥,在线噢!
有点蓝
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106734 积分:542871 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/10 16:44:00 [显示全部帖子]

如果服务器只有一个域名,去掉这个判断

If e.host = "yuming.com" Then

可以改为不需要判断的页面

Select Case e.path
    Case "不需要授权的页面1.htm","不需要授权的页面2.htm"
        Select Case e.path
            Case "不需要授权的页面1.htm"
                Functions.Execute("不需要授权的页面1函数",e)
            Case "不需要授权的页面2.htm"
                ……
        End Select
    Case Else
        授权验证的代码
        Select Case e.path
            Case "需要授权的页面1.htm"
                Functions.Execute("login",e)
            Case "需要授权的页面2.htm"
                ……
        End Select
End Select

 回到顶部
帅哥,在线噢!
有点蓝
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106734 积分:542871 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/11 16:14:00 [显示全部帖子]

不可能啊

If  OpenID > "" And UserName > "" Then
msgbox(OpenID) 弹出有没有值
msgbox(UserName )
    '为什么在OPENID和USERNAME不为空的情况下,下面的代码被循环执行?
        wb.InsertHTML("<meta http-equiv='Refresh' c>")
        e.WriteString(wb.Build)
        Return
    Else
        e.WriteString("你无权访问本系统")
        Return
    End If

 回到顶部
帅哥,在线噢!
有点蓝
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106734 积分:542871 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/11 16:29:00 [显示全部帖子]

到项目里重新把完整代码放到txt发上来

 回到顶部
帅哥,在线噢!
有点蓝
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106734 积分:542871 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/11 17:04:00 [显示全部帖子]

    If  OpenID > "" And UserName > "" Then

        '这里可以做进一步的权限判断

        'sb.AppendLine("欢迎" & UserName & "光临, <a href='http://wexin.foxtable.com'>刷新页面</a>")
        wb.InsertHTML("<meta http-equiv='Refresh' c>")
        e.WriteString(wb.Build)
    Else
        e.WriteString("你无权访问本系统")
        Return
    End If

改为

    If  OpenID > "" And UserName > "" Then
    Else
        e.WriteString("你无权访问本系统")
        Return
    End If

 回到顶部
帅哥,在线噢!
有点蓝
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106734 积分:542871 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/11 17:24:00 [显示全部帖子]

Dim wb As New weui
wb.InsertHTML("<meta name='viewport' c>")
If e.path = "lsit.htm" orelse e.path = "lsit2.htm"  Then '授权测试
    Dim UserName As String
    Dim OpenID As String
    If e.GetValues.ContainsKey("code") Then '如果是通过授权链接跳转而来,就从链接重提取code来获取openid
        Dim ul As String  = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code"
        ul = CExp(ul,"wx8acdb7df5beb68fd","dec0df8a469518df30e9bdef0758c678",e.GetValues("code"))
        Dim hc As new HttpClient(ul)
        Dim jo As JObject = JObject.Parse(hc.GetData)
        If jo("openid") IsNot Nothing Then '如果获取openid成功(成功的话,还会同时返回一个accesstiken,用于获取用户详情)
            OpenID = jo("openid")
            Dim dr As DataRow = DataTables("WXUsers").SqlFind("openid ='" & Openid & "'")
            If dr IsNot Nothing Then
                UserName = dr("nickname")
            Else
                ul = "https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN "
                '根据openid和accesstoken获取用户详情,注意这里这个accesstoken不是普通accesston,只能用于网页授权
                hc = New HttpClient(CExp(ul, jo("access_token"), OpenId))
                jo = jo.Parse(hc.GetData)
                If jo("openid") IsNot Nothing Then
                    UserName = jo("nickname")
                    dr = DataTables("WXUsers").AddNew()
                    Dim nms() As String = {"openid","nickname","sex","city","country","province","headimgurl"} '""
                    For Each nm As String In nms
                        dr(nm) = jo(nm)
                    Next
                    dr.Save
                Else
                    e.WriteString(jo.ToString) '在用户浏览器显示错误信息
                    Return
                End If
            End If
            wb.AppendCookie("username",UserName) '用户名和openid存储在Cookie中
            wb.AppendCookie("openid",OpenID)
            wb.InsertHTML("<meta http-equiv='Refresh' content='0; url=/" & e.path & "'>")
            e.WriteString(wb.Build) '在用户浏览器显示错误信息
            Return
        Else
            e.WriteString(jo.ToString) '在用户浏览器显示错误信息
            Return
        End If
    Else
        UserName = e.Cookies("username") '从cookie获取用户名和openid
        OpenID = e.Cookies("openid")
        
        If userName = "" OrElse OpenID = "" Then
            msgbox("没取到COOKIES")
            Dim ul As String  = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxaecf57229ed535e0&redirect_uri=http%3a%2f%2fweixinyuming.com%2f" & e.path & "&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect"

            wb.InsertHTML("<meta http-equiv='Refresh' c>") '跳转到授权链接
            e.WriteString(wb.Build)
            Return
        End If
    End If

 回到顶部
总数 44 上一页 1 2 3 4 5 下一页