准备为学校应用做免登。需要获取当前登录的用户信息,觉得除了免登,其他都可以在服务器端进行。
其他jsapi都是根据AccessToken来访问的。调试的话,用钉钉RC版+chrome。
免登参考这篇文章https://yq.aliyun.com/articles/53957#3
发送钉钉短信
以上代码测试的时候能通过。
ready的参数可以是一个函数。这样也是可以的。
以下代码,可以获取到code,具体参考java demo
获取到code后,就是把code传回服务器端,获取当前登录的用户信息,具体可参照
https://blog.csdn.net/jeryjeryjery/article/details/53199992
如果需要获取userid信息,
通过CODE换取用户身份
企业应用的服务器在拿到CODE后,需要将CODE发送到钉钉开放平台接口,如果验证通过,则返回CODE对应的用户信息。**此接口只用于免登服务中用来换取用户信息**
Https请求方式: GET
https://oapi.dingtalk.com/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE
参数 | 参数类型 | 必须 | 说明 |
---|---|---|---|
access_token | String | 是 | 调用接口凭证 |
code | String | 是 | requestAuthCode接口中获取的CODE |
正确时返回示例如下:
1
2
3
4
5
6
7
8
|
{
"errcode"
:
0
,
"errmsg"
:
"ok"
,
"userid"
:
"USERID"
,
"deviceId"
:
"DEVICEID"
,
"is_sys"
:
true
,
"sys_level"
:
0
|
1
|
2
}
|
参数 | 说明 |
---|---|
userid | 员工在企业内的UserID |
deviceId | 手机设备号,由钉钉在安装时随机产生 |
is_sys | 是否是管理员 |
sys_level | 级别,0:非管理员 1:超级管理员(主管理员) 2:普通管理员(子管理员) 100:老板 |
具体看钉钉文档。
因为域名需要在钉钉微应用里设置好,
对于客户端和服务端的域名不一样的情况,就不好处理。
需要配置node 服务器,支持客户端和服务器端。
如果用koa2框架。建议看下面的文章,写的非常的清晰。
https://blog.csdn.net/u010668495/article/details/70556712
https://blog.csdn.net/u010668495/article/details/70665204
在express中处理静态文件容易
在koa2中,需要选择中间件。koa2的中间件本质就是一个函数,实现了ctx和next两个参数,使用koa-router的话,只要ctx参数,应该是koa-router处理了next,或者是router是最后一环,不需要next了?。自己写中间件的话,还是要实现ctx next两个参数,并且在中间件函数中主动调用next()
阮一峰的文章中演示了用
const main = ctx => {
ctx.response.type = 'html';
ctx.response.body = fs.createReadStream('./demos/template.html');
};或者const path = require('path');
const serve = require('koa-static');
const main = serve(path.join(__dirname));
app.use(main);
详见
http://www.ruanyifeng.com/blog/2017/08/koa.html
引入koa-static和koa-router后,
如果访问/,和访问/index.html有啥区别呢?koa-static 是放在koa-router前还是后好呢?
文中path 包 是nodejs内置的,
koa-body vs koa-bodyparse 不知道啥区别,
用koa写一个中间件,当访问a.tt的时候,把相关的几个文件组合成一个文件输出也是可行的。