赞
踩
O2OA翱途是一款全开源的企业信息化开发平台,作为OA系统开发平台,O2OA着力于帮助企业降低信息化系统开发成本,帮助企业提升信息化能力。本系列主要以实战形式向大家介绍使用开源OA平台搭建一套协同办公系统的实际操作过程,让大家更好地了解O2OA平台的基本能力。
本文主要介绍一下O2OA这个OA办公系统下,如何实现单点登录。
OAuth是一个关于授权(authorization)的开放标准,目前的版本是2.0版。
比如网站,手机使用的"使用微信账号登陆","使用微博账号登陆"采用的都是OAuth2实现的.
总体的过程是这样的:
1.o2oa平台提供一个微信登录的链接,用户点击跳转到微信的服务器
2.用户根据微信授权,提示登录,微信并确认授权给o2平台
认证的步骤:
1.微信授权服务器返回用户的浏览器一个授权码,这个是请求code的过程.
2.微信返回授权码(code)给o2平台
3.o2平台凭借授权码和之前由微信提供给我们的客户号(AppID) 和 客户密钥(AppSecrect) 向微信服务器请求令牌,获取access_token
4.通过access_token去微信资源服务器读取用户信息(这一步在微信登陆过程中可以忽略).
前提条件:首先在微信开放平台需要,注册开发者帐号,并拥有一个已审核通过的网站应用,并获得相应的AppID和AppSecret,才可开始接入流程。
接下来,
我们以培训的这台服务器为例,进行配置。
这里我们使用live服务器申请到了两个凭证:
AppID: wx7c7c2320775****
AppSecret: 996de80562e8ead0907707a93d9a1e***
这个账号是和域名(live.o2oa.net)是绑定的.无法冒用其他人的appId
回到平台的主菜单
点击左上角主菜单 -> 系统配置 -> 系统sso配置 -> OAUTH服务端配置 -> 添加oauth配置.
这里要说明一下:微信单点登陆和企业微信配置不是一个项目.
是否启用
yes
名称
微信
displayName
微信
图标
我们可以到微信的官网选择一个适合的图标
https://open.weixin.qq.com/zh_CN/htmledition/res/assets/res-design-download/icon48_appwx_logo.png
客户号
对应微信申请下来的appId
appid :o2平台在微信上注册的开发者账号
wx7c7c2320775b40c2
客户密钥
对应微信申请下来的AppSecret
996de80562e8ead0907707a93d9a1ef2
请求密钥网址
https://open.weixin.qq.com/connect/qrconnect
请求密钥方法参数
redirect_urI:回调地址, 用户授权服务器传送授权码的地址
redirect_uri={$redirect_uri}&appid={$clientId}&response_type=code&scope=snsapi_login&state=STATE
请求密钥方法
GET
请求令牌网址
https://api.weixin.qq.com/sns/oauth2/access_token
请求令牌方法参数
appid={$clientId}&secret={$clientSecret}&code={$code}&grant_type=authorization_code
请求令牌方法
GET
token信息格式
JSON
请求信息网址
由于我们忽略第三步,这里保持为空.
请求信息方法参数
由于我们忽略第三步,这里保持为空.
请求信息方法
由于我们忽略第三步,这里保持为空.
info信息格式
由于我们忽略第三步,这里保持为空.
info信息中用于标识个人的字段
微信返回openid作为用户的唯一标识
openid
infoScriptText
较复杂的情况下可以通过脚本来进行数据转换,这里我们保持为空即可
bindingEnable
选择启用,我们把openid字段存储到用户的open1Id字段.
yes
bindingField
在个人的表用来存储微信openid的字段
open1Id
至此我们完成了微信单点登陆的配置.
配置完成后需要重启系统使配置生效.
与一般的网站不同,O2OA系统一般先有用户,我们需要完成用户和微信的绑定,再实现可以通过微信的单点登陆.
处于安全的考虑 xadmin 默认管理员不能进行绑定,要用注册的用户进行登陆
登陆系统,选择左上角主菜单 -> 选择右上角个人 -> 选择个人设置 -> 选择单点登陆 -> 点击微信
点击微信登陆,扫描二维码完成登陆。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。