首页 新闻 会员 周边

企业微信 菜单点击链接跳转登陆授权问题

0
悬赏园豆:50 [已解决问题] 解决于 2018-04-11 09:31

 

 

 

本人小白一枚啊,最近上级要求做微信开发这一块,一个人开发没有人商议,各位大咖们求求指点迷津~~~~~

 

 

baicexxqtd的主页 baicexxqtd | 初学一级 | 园豆:26
提问于:2018-04-10 10:08
< >
分享
最佳答案
1

我觉得这么理解可能容易一点,我们换个理解方式,你的系统里uerid是每一个用户的唯一标识,对于微信来说openid是每一个用户的唯一标识,只不过这个标识是相对于每一个微信号的,不是全局的。

因为良好的用户体验,所以通常我们的做法,是将用户的openid放入cookie中,所以逻辑是,打开页面,如果cookie取不到openid,那么就会跳转到授权页面,获取用户的openid,并保存在cookie中,这样做的好处就是,减少跳转授权页面的次数。

那么微信的openid怎么与你系统里的userid匹配,这个是你需要解决的问题,也就是两个人员如何同步统一的问题,比如说可以使用手机验证码来匹配你系统的userid,与微信的openid是否关联,前提是你系统里也要有该用户的联系手机;或者可以使用找回账号的方式,来关联你的userid,与微信的openid。如果一旦关联上,你就可以让这个openid来访问你的系统了。

当然保险一点的方式,你还可以过滤一下openid,看看它是否是真实并关注你的openid,而不是伪造的。

另外关于安全问题,如果能拿到openid,你就可以认为这个人是授权登陆的,安全问题基本上微信帮你解决大半了。

收获园豆:50
yhdino | 小虾三级 |园豆:701 | 2018-04-10 11:18

那我直接拿到OpenId之后,反正OpeniD是对应着工号,我根据OpenId查数据库里面的用户表得到账号密码,这样我传参数过去。直接调用登录系统方法不就行了嘛。。。会不会有什么问题?

baicexxqtd | 园豆:26 (初学一级) | 2018-04-10 11:43

我这样写。。会不会失去了这个授权的意义

baicexxqtd | 园豆:26 (初学一级) | 2018-04-10 11:44

@baicexxqtd: 从我角度看,没有问题,你只不过做了一道模拟登陆而已,可以的。授权不会没有意义,你想想,如果没有授权,你怎么拿到openid,另外,你怎么关联上你的openid和你的userid,因为openid长相基本就是前几个字符一样,后面都是一串数字。我比较担心的是,你怎么关联上openid与工号。

yhdino | 园豆:701 (小虾三级) | 2018-04-10 12:05

@yhdino: hhhhhhh,我们是企业微信开发,我们的通讯录里面的人员信息是从我们系统导过来的,以后是,现在也是,那个账号是我们自己设定的。我们当初是把那个UserID也就是那个成员唯一标识,可以使用工号、邮箱等公司系统内统一的ID,我们是使用的是对应着我们系统的工号Id,所以经过OAuth2.0接入成功返回Userid(可以説是我们系统的工号)和其它信息。
     哈哈哈我的好奇心太大了,谢谢兄dei这么有耐心又热心来帮我这个小白解决问题!!!!hhhhhh

  一说到 微信开发,你们是怎么openid关联的?,hhhh最后这个问题可答可不答啦.无聊想知道更多。

baicexxqtd | 园豆:26 (初学一级) | 2018-04-10 14:17

@yhdino: 

  那这个安全问题就没办法了吧

 

baicexxqtd | 园豆:26 (初学一级) | 2018-04-10 14:47

@baicexxqtd: 其实我觉得还好,无论哪种方式,都没有绝对安全的,只是企业内部用,应该可以了。

yhdino | 园豆:701 (小虾三级) | 2018-04-10 16:02

@yhdino: 谢谢哥,麻烦啦。hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

baicexxqtd | 园豆:26 (初学一级) | 2018-04-10 16:05
其他回答(1)
0

分成2部分.

1是获取openid,因为在微信里是一定能取道openid的.所以要有一个地方放回话的openid

2才是登录授权.不要和上面的openid做到一起.可以在登录的时候调用openid.来登录.

吴瑞祥 | 园豆:29449 (高人七级) | 2018-04-10 10:40

。。。还是有点不明白...

支持(0) 反对(0) baicexxqtd | 园豆:26 (初学一级) | 2018-04-10 10:51

@baicexxqtd: 你想太多了.你拿到openid就当作是登录成功了.别想什么不安全的.安全的问题微信都给你解决了.

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2018-04-10 10:55

@吴瑞祥: 也就是説,拿到Openid 就等于可以用了??不要登陆嘛,,hhh,那一些Session重要的值怎么办?直接赋值?

支持(0) 反对(0) baicexxqtd | 园豆:26 (初学一级) | 2018-04-10 11:01

@吴瑞祥: 直接从数据库里面 查询出来进行Session赋值嘛?

支持(0) 反对(0) baicexxqtd | 园豆:26 (初学一级) | 2018-04-10 11:02

@baicexxqtd: 是的.你后面说的都对

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2018-04-10 11:21

@吴瑞祥: 那我直接拿到OpenId之后,反正OpeniD是对应着工号,我根据OpenId查数据库里面的用户表得到账号密码,这样我传参数过去。直接调用登录系统方法不就行了嘛。。。会不会有什么问题

支持(0) 反对(0) baicexxqtd | 园豆:26 (初学一级) | 2018-04-10 11:43

@baicexxqtd: 不会有问题

支持(1) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2018-04-10 14:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册