文档章节

2.身份验证

arvin_ho
 arvin_ho
发布于 2017/04/10 11:16
字数 732
阅读 23
收藏 0
点赞 0
评论 0

一.OAuth2.0 接口

作用:当用户通过微信访问网站时,需要获取用户ID来判断用户是否属于企业号中通讯录成员。

 

通过此接口获取成员身份会有一定的时间开销。对于频繁获取成员身份的场景,建议采用如下方案:

1、企业应用中的URL链接直接填写企业自己的页面地址

2、成员跳转到企业页面时,企业校验是否有代表成员身份的cookie,此cookie由企业生成

3、如果没有获取到cookie,重定向到OAuth验证链接,获取成员身份后,由企业生成代表成员身份的cookie

4、根据cookie获取成员身份,进入相应的页面

 

步骤:

1.在企业号后台开启应用可信域名配置。

 

2.获取用户授权Code

Https请求方式: GET,需构造如下的链接

https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

 

参数 必须 说明
appid 企业的CorpID
redirect_uri 授权后重定向的回调链接地址,请使用urlencode对链接进行处理
response_type 返回类型,此时固定为:code
scope 应用授权作用域,此时固定为:snsapi_base
state 重定向后会带上state参数,企业可以填写a-zA-Z0-9的参数值,长度不可超过128个字节
#wechat_redirect 微信终端使用此参数判断是否需要带上身份信息

 

例如:

在应用自定义菜单添加链接:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxb234248ce067890f&redirect_uri=http%3a%2f%2fxf.efision.cn%2fuser%2fuserInfo&response_type=code&scope=snsapi_base&state=123#wechat_redirect

当用户点击菜单后,将跳转至: http://xf.efision.cn/user/userInfo?code=CODE&state=123

其中code为企业号返回的用户授权Code。

 

3.根据Code获取用户信息

Https请求方式: GET,需构造如下的链接

https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE

 

参数 必须 说明
access_token 调用接口凭证
code 通过成员授权获取到的code,每次成员授权带上的code将不一样,code只能使用一次,10分钟未被使用自动过期

 

权限说明

跳转的域名须完全匹配管理组中任一应用的可信域名。

 

返回结果

a)企业成员授权时返回示例如下:

{

"UserId":"USERID",

"DeviceId":"DEVICEID"

}

参数 说明
UserId 成员UserID
DeviceId 手机设备号(由微信在安装时随机生成,删除重装会改变,升级不受影响,同一设备上不同的登录账号生成的deviceid也不同)

 

b)非企业成员授权时返回示例如下:

 

{

"OpenId":"OPENID",

"DeviceId":"DEVICEID"

}

参数 说明
OpenId 非企业成员的标识,对当前企业号唯一
DeviceId 手机设备号(由微信在安装时随机生成,删除重装会改变,升级不受影响)

 

c)出错时返回示例如下:

{

"errcode": "40029",

"errmsg": "invalid code"

}

 

© 著作权归作者所有

共有 人打赏支持
arvin_ho
粉丝 0
博文 2
码字总数 1172
作品 0
IIS6.0+添加Windows身份验证

首先要安装身份验证功能 打开IIS,选择相应的站点,进入“身份验证”功能 默认是开启了Forms身份验证和匿名身份验证的,这里要注意的是我们要先把这2个禁用了才能正常开启Windows身份验证 如...

venorie ⋅ 2016/01/27 ⋅ 0

shiro之身份认证

一、用户需要提供principals (身份)和credentials(证明)给shiro,从而应用能验证用户身份。 principals:身份,即主体的标识属性,可以是任何东西,如用户名、邮箱等,唯一即可。一个主体...

沉默的懒猫 ⋅ 2016/07/04 ⋅ 0

第二章 身份验证

身份验证:即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明。 在shiro中,用户需要提供principals (身份)和cre...

heroShane ⋅ 2014/02/26 ⋅ 0

使用Google身份验证进行ssh二次验证

什么是谷歌身份验证器 谷歌身份验证器,即Google Authenticator(Google身份验证器)v2.33 谷歌推出的一款动态口令工具,解决大家的google账户遭到恶意攻击的问题。 特点 1、透过QR图码自动设...

顶风走千里 ⋅ 05/18 ⋅ 0

世纪互联版Office 365 MFA配置

Azure 多重身份验证 (MFA) 是 Microsoft 的双重验证解决方案,在国际版Office 365很早就可以实现,但是世纪互联版Office 365上该功能一直未更新。最近在研究世纪互联版Office 365时,发现此功...

ljb_job ⋅ 2017/04/11 ⋅ 0

Shiro 身份验证

身份验证,即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明。 在shiro中,用户需要提供principals (身份)和cre...

浮躁的码农 ⋅ 2015/12/01 ⋅ 0

跟开涛老师学shiro -- 身份验证

身份验证,即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明。 在shiro中,用户需要提供principals (身份)和cre...

文艺小青年 ⋅ 2017/06/01 ⋅ 0

shiro使用之二

1.身份认证概念 在 shiro 中,用户需要提供 principals (身份)和 credentials(证明)给 shiro,从而应用能 验证用户身份; principals:身份,即主体的标识属性,可以是任何东西,如用户名...

乾坤刀 ⋅ 2017/07/27 ⋅ 0

通过 HttpAuthenticationMechanism 执行 Web 身份验证

通过 Java EE 8 中新的注解驱动的 HTTP 身份验证机制执行经典和自定义的 Servlet 身份验证 系列内容: 此内容是该系列 4 部分中的第 # 部分: Java EE 8 Security API 入门,第 2 部分 http...

Alex Theedom ⋅ 04/02 ⋅ 0

Azure AD Connect 用户登录选项介绍

Azure AD Connect 相信大家都使用过,他的作用是让用户使用同一帐户密码访问本地和云资源。使IT管理员只需要对本地DC进行用户的管理即可。 在新版的Azure AD Connect中,用户的登录选项发生了...

ljb_job ⋅ 01/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Thrift RPC实战(二) Thrift 网络服务模型

TServer类层次体系 TSimpleServer/TThreadPoolServer是阻塞服务模型 TNonblockingServer/THsHaServer/TThreadedSelectotServer是非阻塞服务模型(NIO) 1 TServer抽象类的定义 内部静态类Args的...

lemonLove ⋅ 9分钟前 ⋅ 0

vim命令用法

第五章 vim命令 vim和vi几乎是一样的,唯一的区别就是当编辑一个文本时,使用vi不会显示颜色,而使用vim会显示颜色。 vim有三个模式:一般模式,编辑模式,命令模式。 系统最小化安装时没有安...

弓正 ⋅ 10分钟前 ⋅ 0

MyBatis源码解读之配置

1. 目的 本文主要介绍MyBatis配置文件解析,通过源码解读mybatis-config.xml(官方默认命名)、Mapper.xml 与Java对象的映射。 2. MyBatis结构 查看大图 MyBatis结构图,原图实在太模糊了,所以...

无忌 ⋅ 14分钟前 ⋅ 0

Ignite的jdbc与网格的连接方式的查询性能对比

环境: 数据量100万 Ignite2.5 Windows10 8g jdbc方式连接 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; i......

仔仔1993 ⋅ 28分钟前 ⋅ 0

收集自网络的wordpress 分页导航的代码教程(全网最全版)

wordpress 分页导航是用来切换文章的一个功能,添加了 wordpress 分页导航后,用户即可自由到达指定的页面数浏览分类文章,而这样的一个很简单功能却有很多朋友在用插件:WP-PageNavi,插件的...

Rhymo-Wu ⋅ 44分钟前 ⋅ 0

微服务 WildFly Swarm 入门

Hello World 就像前面章节中的其他框架一样,我们希望添加一些基本的 Hello-world 功能,然后在其上逐步添加更多的功能。让我们从在我们的项目中创建一个 HolaResources 开始。您可以使用您的...

woshixin ⋅ 51分钟前 ⋅ 0

Maven的安装和Eclipse的配置

1. 下载Maven 下载地址 2. 解压压缩包,放到自己习惯的硬盘中 此处我将其放到了 D:\Tools 目录下。 3. 配置环境变量 右键此电脑 -> 属性 -> 高级系统设置 -> 环境变量。 在系统变量中新建,变...

影狼 ⋅ 59分钟前 ⋅ 0

python pip使用国内镜像的方法

国内源 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 华中理工大学:http://......

良言 ⋅ 59分钟前 ⋅ 0

对于url变化的spa应该如何使用微信jssdk

使用vue单页面碰上微信jssdk config验证失败的坑。第一次成功 之后切换页面全部失败,找到了解决方法,第一次验证成功后保存验证信息 切换页面时验证信息直接拿来用,加一个wx.error() 失败时...

孙冠峰 ⋅ 今天 ⋅ 0

Spring Cloud Gateway 一般集成

SCF发布,带来很多新东西,不过少了点教程,打开方式又和以前的不一样,比如这个SCG,压根就没有入门指导,所以这里写一个,以备后用。 一、集成 pom.xml <dependency> <groupI...

kut ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部