Foxtable(狐表)用户栏目专家坐堂 → 授权后跳转 cookie不生效例子


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

主题:授权后跳转 cookie不生效例子

帅哥哟,离线,有人找我吗?
fubblyc
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16181 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2018/7/14 18:15:00 [只看该作者]

蓝老师,苹果手机可以呢。。。
还有,直接访问安卓也可以:http://yijiansoft.net/yhqshouye.htm
就是 安卓访问授权跳转的方式不行

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/15 17:52:00 [只看该作者]

方法一:用js设置cookie,很简单,如

 

https://www.baidu.com/baidu?wd=js+cookie&tn=monline_4_dg

 

方法二:cookie有可能不安全。一般信息都是保存在服务器里面的,你可以用一个变量保存值,如 vars("张三_验证码") = "abcd",需要比较验证的时候使用vars变量。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/15 17:55:00 [只看该作者]

方法三:你可以模拟实现session(自己百度一下这个东西)吧?用户访问的时候,生成一个guid(唯一编码),写到cookie里面去。

 

然后定义一个public变量的字典。public _dic As New Dictionary(Of string, object),把guid压入字典,如

 

_dic.Add(guid, New Dictionary(Of String, object))

 

每次访问的时候,读取cookie的值,即可得到你自己的session了。得到session以后,再根据变量名获取值。


 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16181 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2018/7/17 10:32:00 [只看该作者]

甜老师,我有做了js的cookies例子如下:

以下内容是专门发给有点甜,有点蓝浏览




 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16181 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2018/7/17 10:33:00 [只看该作者]

现在这个链接是没问题的,可以发短信,验证验证码:
甜老师你可以试一下:http://yijiansoft.net/yhqshouye.htm


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/17 11:35:00 [只看该作者]

没看懂你的问题是什么?现在你遇到什么情况?

 

alert或者msgbox弹出各个值看一下。


 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16181 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2018/7/17 11:44:00 [只看该作者]

甜老师,问题是,
直接访问:http://yijiansoft.net/yhqshouye.htm
没问题。

但是用 自动跳转到这个页面的链接,安卓手机的 cookie就不生效了。苹果手机依然生效(要刷新下,验证码的cookie才会生效)
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8921022fc595bc93&redirect_uri=http%3a%2f%2fwww.yijiansoft.net&response_type=code&scope=snsapi_userinfo&state=antashandong#wechat_redirect


sb.Append("<meta http-equiv='refresh' c o n t e n t = '0; u r l =/yhqshouye.htm'>")

授权跳转代码:
            Dim AppId As String= dr("AppId")
            Dim Secret As String = dr("AppSecret")
            Dim zhangtao As String = dr("账套")
            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,appid,secret,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 drwx As DataRow = DataTables("WXUsers").sqlFind("openid ='" & Openid & "'")
                If drwx IsNot Nothing Then
                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
                        drwx = DataTables("WXUsers").sqlAddNew()
                        Dim nms() As String = {"openid","nickname","sex","city","country","province","headimgurl"} '""
                        For Each nm As String In nms
                            drwx(nm) = jo(nm)
                        Next
                        drwx("账套") = zhangtao
                        drwx("addtime") = Date.now
                        drwx.Save
                    Else
                        e.WriteString(jo.ToString) '在用户浏览器显示错误信息
                        Return ""
                    End If
                End If
                e.AppendCookie("openid",OpenID)
                e.AppendCookie("zhangtaowxzc",dr("账套"))                
sb.Append("<meta http-equiv='refresh' c o n t e n t = '0; u r l =/yhqshouye.htm'>")
                e.WriteString(sb.ToString)
            Else
                e.WriteString(jo.ToString) '在用户浏览器显示错误信息
                Return ""
            End If
        End If
[此贴子已经被作者于2018/7/13 17:07:10编辑过]

[此贴子已经被作者于2018/7/17 11:45:16编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/17 13:09:00 [只看该作者]

很简单的问题啊,请加入msgbox,看是否触发了里面的代码。如果没有触发,想一下原因。

 

授权代码、页面代码,分别加入msgbox调试。

 

不然,你就在页面那里,写代码再刷新一次。

 

不然,请用13楼的方法处理。


 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16181 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2018/7/17 15:46:00 [只看该作者]

甜老师,有触发,苹果手机可以,安卓手机不行,不知道是什么原因~
sb.Append("<meta http-equiv='refresh' c o n t e n t = '0; u r l =/yhqshouye.htm'>")
不知道是不是这句对安卓手机,要怎么做特殊处理什么的~

 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16181 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2018/7/17 15:51:00 [只看该作者]

恩恩,甜老师,算了,不去管他苹果还是安卓了。。

方法二:cookie有可能不安全。一般信息都是保存在服务器里面的,你可以用一个变量保存值,如 vars("张三_验证码") = "abcd",需要比较验证的时候使用vars变量。

这个,我目前是用cookie,然后也是在Js里去对比用户输入的值和发短信时存储的cookie是否一样

那改成vars("张三_验证码") = "abcd",js 要怎么写 vars 呢,js 也能取到这个变量值是吗。。。
我js cookie 对比 验证码的 代码如下:

function valid(){
   var v3 = document.getElementById("yzm").value;


//获取cookie字符串 //这里是用cookie获取之前存储的,那如果用var ,这里怎么取发短信页面存的验证码的 值呢。。
var strCookie=document.cookie; 
//将多cookie切割为多个名/值对 
var arrCookie=strCookie.split("; "); 
var yzm; 
//遍历cookie数组,处理每个cookie对 
for(var i=0;i<arrCookie.length;i++){ 
var arr=arrCookie[i].split("="); 
alert(arr[0] + arr[1]);

//找到名称为yzm的cookie,并返回它的值 
if("yzm"==arr[0]){ 
yzm =arr[1]; 
break; 
}

alert("验证码cookies:" + yzm)

if (v3 !== yzm) {alert("验证码错误");return false}
}


[此贴子已经被作者于2018/7/17 15:53:21编辑过]

 回到顶部
总数 26 上一页 1 2 3 下一页