我觉得这么理解可能容易一点,我们换个理解方式,你的系统里uerid是每一个用户的唯一标识,对于微信来说openid是每一个用户的唯一标识,只不过这个标识是相对于每一个微信号的,不是全局的。
因为良好的用户体验,所以通常我们的做法,是将用户的openid放入cookie中,所以逻辑是,打开页面,如果cookie取不到openid,那么就会跳转到授权页面,获取用户的openid,并保存在cookie中,这样做的好处就是,减少跳转授权页面的次数。
那么微信的openid怎么与你系统里的userid匹配,这个是你需要解决的问题,也就是两个人员如何同步统一的问题,比如说可以使用手机验证码来匹配你系统的userid,与微信的openid是否关联,前提是你系统里也要有该用户的联系手机;或者可以使用找回账号的方式,来关联你的userid,与微信的openid。如果一旦关联上,你就可以让这个openid来访问你的系统了。
当然保险一点的方式,你还可以过滤一下openid,看看它是否是真实并关注你的openid,而不是伪造的。
另外关于安全问题,如果能拿到openid,你就可以认为这个人是授权登陆的,安全问题基本上微信帮你解决大半了。
那我直接拿到OpenId之后,反正OpeniD是对应着工号,我根据OpenId查数据库里面的用户表得到账号密码,这样我传参数过去。直接调用登录系统方法不就行了嘛。。。会不会有什么问题?
我这样写。。会不会失去了这个授权的意义
@baicexxqtd: 从我角度看,没有问题,你只不过做了一道模拟登陆而已,可以的。授权不会没有意义,你想想,如果没有授权,你怎么拿到openid,另外,你怎么关联上你的openid和你的userid,因为openid长相基本就是前几个字符一样,后面都是一串数字。我比较担心的是,你怎么关联上openid与工号。
@yhdino: hhhhhhh,我们是企业微信开发,我们的通讯录里面的人员信息是从我们系统导过来的,以后是,现在也是,那个账号是我们自己设定的。我们当初是把那个UserID也就是那个成员唯一标识,可以使用工号、邮箱等公司系统内统一的ID,我们是使用的是对应着我们系统的工号Id,所以经过OAuth2.0接入成功返回Userid(可以説是我们系统的工号)和其它信息。
哈哈哈我的好奇心太大了,谢谢兄dei这么有耐心又热心来帮我这个小白解决问题!!!!hhhhhh
一说到 微信开发,你们是怎么openid关联的?,hhhh最后这个问题可答可不答啦.无聊想知道更多。
@yhdino:
那这个安全问题就没办法了吧
@baicexxqtd: 其实我觉得还好,无论哪种方式,都没有绝对安全的,只是企业内部用,应该可以了。
@yhdino: 谢谢哥,麻烦啦。hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
分成2部分.
1是获取openid,因为在微信里是一定能取道openid的.所以要有一个地方放回话的openid
2才是登录授权.不要和上面的openid做到一起.可以在登录的时候调用openid.来登录.
。。。还是有点不明白...
@baicexxqtd: 你想太多了.你拿到openid就当作是登录成功了.别想什么不安全的.安全的问题微信都给你解决了.
@吴瑞祥: 也就是説,拿到Openid 就等于可以用了??不要登陆嘛,,hhh,那一些Session重要的值怎么办?直接赋值?
@吴瑞祥: 直接从数据库里面 查询出来进行Session赋值嘛?
@baicexxqtd: 是的.你后面说的都对
@吴瑞祥: 那我直接拿到OpenId之后,反正OpeniD是对应着工号,我根据OpenId查数据库里面的用户表得到账号密码,这样我传参数过去。直接调用登录系统方法不就行了嘛。。。会不会有什么问题
@baicexxqtd: 不会有问题