Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
A
app-manage-console
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
ReactNative
app-manage-console
Commits
f0c86e58
提交
f0c86e58
authored
12月 14, 2017
作者:
vipcxj
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
uca验证支持
上级
b1b0526e
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
43 行增加
和
3 行删除
+43
-3
uca.js
src/services/login/uca.js
+1
-1
uca.js
src/services/uca.js
+6
-0
uca.js
src/utils/uca.js
+36
-2
没有找到文件。
src/services/login/uca.js
浏览文件 @
f0c86e58
...
...
@@ -16,7 +16,7 @@ export const validate = async (signed, token) => {
type
:
'uca'
,
parameters
:
{
action
:
'validate'
,
response
:
signed
,
response
:
encodeURIComponent
(
signed
)
,
},
};
await
addToken
(
request
,
token
);
...
...
src/services/uca.js
0 → 100644
浏览文件 @
f0c86e58
import
post
from
'../utils/post'
;
import
config
from
'../utils/config'
;
export
const
bindCert
=
async
(
uid
,
cert
)
=>
{
return
post
(
`
${
config
.
apiContextPath
}
/api/uca/admin/cert`
,
{
uid
,
cert
:
encodeURIComponent
(
cert
)
});
};
src/utils/uca.js
浏览文件 @
f0c86e58
...
...
@@ -22,9 +22,43 @@ export const init = () => {
}
};
/**
* 获取证书
* @param password usb-key的密钥
* @return {{cert: string, deadTime: number}}
*/
export
const
getCert
=
(
password
)
=>
{
if
(
bowser
.
msie
||
bowser
.
msedge
)
{
const
safeEngine
=
new
AXO
(
'SafeEngineCOM.SafeEngineCtl'
);
if
(
!
safeEngine
)
{
throw
new
Error
(
'未安装USB证书控件。'
);
}
safeEngine
.
SEH_InitialSession
(
27
,
'com1'
,
password
,
100
,
2
,
''
,
''
);
if
(
safeEngine
.
ErrorCode
!==
0
)
{
throw
new
Error
(
'USB-KEY初始化失败,请确认USB-KEY是否插入或密码是否正确。'
);
}
try
{
const
cert
=
safeEngine
.
SEH_GetSelfCertificate
(
27
,
'com1'
,
''
);
if
(
safeEngine
.
ErrorCode
!==
0
)
{
throw
new
Error
(
`获取个人证书错误,错误代码为:
${
safeEngine
.
ErrorCode
}
。`
);
}
const
res
=
{
cert
,
};
const
deadTime
=
safeEngine
.
SEH_GetCertValidDate
(
cert
);
res
.
deadTime
=
parseInt
(
deadTime
,
10
);
return
res
;
}
finally
{
safeEngine
.
SEH_ClearSession
();
}
}
else
{
throw
new
Error
(
'当前浏览器不支持activeX控件,请切换ie或edge或带ie内核的360之类的浏览器。'
);
}
};
/**
* 签名
* @param password usb的密钥
* @param password usb
-key
的密钥
* @param data 需要签名的数据,从服务端获取
* @return {{deadTime: number, signed: string}}
*/
...
...
@@ -32,7 +66,7 @@ export const sign = (password, data) => {
if
(
bowser
.
msie
||
bowser
.
msedge
)
{
const
safeEngine
=
new
AXO
(
'SafeEngineCOM.SafeEngineCtl'
);
if
(
!
safeEngine
)
{
throw
new
Error
(
'未安装USB证书
驱动
。'
);
throw
new
Error
(
'未安装USB证书
控件
。'
);
}
safeEngine
.
SEH_InitialSession
(
27
,
'com1'
,
password
,
100
,
2
,
''
,
''
);
if
(
safeEngine
.
ErrorCode
!==
0
)
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论