Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Z
zhichan
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
蒋勇
zhichan
Commits
a3d4ae7a
Commit
a3d4ae7a
authored
May 12, 2020
by
庄冰
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feishu login
parent
1f02da0d
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
110 additions
and
86 deletions
+110
-86
center-channel/app/base/service/impl/common/feishuLoginSve.js
+0
-82
center-channel/app/base/service/impl/utilsSve/utilsFeishuSve.js
+109
-2
center-channel/app/config/routes/api.js
+1
-2
No files found.
center-channel/app/base/service/impl/common/feishuLoginSve.js
deleted
100644 → 0
View file @
1f02da0d
const
system
=
require
(
"../../../system"
);
const
crypto
=
require
(
'crypto'
);
var
settings
=
require
(
"../../../../config/settings"
);
class
feishuLoginService
{
constructor
()
{
this
.
utilsFeishuSve
=
system
.
getObject
(
"service.utilsSve.utilsFeishuSve"
);
this
.
utilsAuthSve
=
system
.
getObject
(
"service.utilsSve.utilsAuthSve"
);
};
//用户登录
async
checkAndLogin
(
pobj
){
// return system.getResultSuccess(null,"测试");
try
{
if
(
!
pobj
.
code
){
return
system
.
getResultFail
(
-
100
,
"code参数不能为空"
);
}
//获取 app_access_token(应用商店应用)
var
appAccessTokenRes
=
await
this
.
utilsFeishuSve
.
getAppAccessToken
();
if
(
appAccessTokenRes
.
status
!=
0
){
return
appAccessTokenRes
;
}
var
app_access_token
=
appAccessTokenRes
.
data
;
//获取飞书登录用户身份
var
userAccessTokenParams
=
{
"code"
:
pobj
.
code
,
"app_access_token"
:
app_access_token
,
"open_id"
:
pobj
.
open_id
||
""
};
var
userAccessTokenRes
=
await
this
.
utilsFeishuSve
.
getUserAccessToken
(
userAccessTokenParams
);
if
(
userAccessTokenRes
.
status
!=
0
){
return
userAccessTokenRes
;
}
var
userAccessTokenObj
=
userAccessTokenRes
.
data
;
//帐号登录---若用户信息已存在 则返回userpin 不存在则返回空
var
loginByUserNameParams
=
{
"appInfo"
:
pobj
.
appInfo
,
"actionType"
:
"getLoginByUserName"
,
"actionBody"
:
{
"open_id"
:
userAccessTokenObj
.
open_id
,
"channelUserId"
:
userAccessTokenObj
.
open_id
,
// Y 渠道用户ID
"channelUserName"
:
userAccessTokenObj
.
name
,
// N 渠道用户名
"nickName"
:
userAccessTokenObj
.
name
,
// N 用户昵称
"head_url"
:
userAccessTokenObj
.
avatar_url
//头像
}
};
var
loginByUserNameRes
=
await
this
.
getLoginByUserName
(
loginByUserNameParams
);
if
(
loginByUserNameRes
&&
loginByUserNameRes
.
status
==
0
){
return
loginByUserNameRes
;
//获取userpin直接返回
}
// // 获取飞书用户信息
// var userInfoParams={
// user_access_token:userAccessTokenObj.access_token
// };
// var userInfoRes = await this.utilsFeishuSve.getUserInfo(userInfoParams);
// if(userInfoRes.status!=0){
// return userInfoRes;
// }
// var userInfoObj = userInfoRes.data;
}
catch
(
e
)
{
return
system
.
getResultFail
(
-
200
,
e
.
stack
);
}
return
system
.
getResultFail
(
-
100
,
"获取userpin失败"
);
}
//渠道通过账户进行登录,有则返回用户信息,没有则创建用户------>供后端调用
async
getLoginByUserName
(
pobj
){
var
tmpOpResult
=
await
this
.
utilsAuthSve
.
getLoginByUserName
(
pobj
,
pobj
.
actionBody
);
if
(
tmpOpResult
.
status
!=
0
&&
tmpOpResult
.
status
!=
2060
)
{
return
tmpOpResult
;
}
var
opResult
=
system
.
getResultSuccess
({
userpin
:
pobj
.
actionBody
.
userpin
})
if
(
tmpOpResult
.
status
==
2060
)
{
opResult
.
msg
=
tmpOpResult
.
msg
;
opResult
.
data
.
userpin
=
tmpOpResult
.
data
.
userpin
;
}
return
opResult
;
}
}
module
.
exports
=
feishuLoginService
;
\ No newline at end of file
center-channel/app/base/service/impl/utilsSve/utilsFeishuSve.js
View file @
a3d4ae7a
const
system
=
require
(
"../../../system"
);
const
system
=
require
(
"../../../system"
);
var
settings
=
require
(
"../../../../config/settings"
);
var
settings
=
require
(
"../../../../config/settings"
);
const
uuidv4
=
require
(
'uuid/v4'
);
// var crypto = require('crypto');
// var crypto = require('crypto');
/**
/**
* 飞书小程序相关接口
* 飞书小程序相关接口
...
@@ -8,6 +9,7 @@ class UtilsFeishuService{
...
@@ -8,6 +9,7 @@ class UtilsFeishuService{
constructor
()
{
constructor
()
{
this
.
execClient
=
system
.
getObject
(
"util.execClient"
);
this
.
execClient
=
system
.
getObject
(
"util.execClient"
);
this
.
cacheManager
=
system
.
getObject
(
"db.common.cacheManager"
);
this
.
cacheManager
=
system
.
getObject
(
"db.common.cacheManager"
);
this
.
utilsAuthSve
=
system
.
getObject
(
"service.utilsSve.utilsAuthSve"
);
this
.
appConfig
=
{
this
.
appConfig
=
{
app_id
:
"cli_9e28dcb1d637100d"
,
app_id
:
"cli_9e28dcb1d637100d"
,
app_secret
:
"zL1uRrWFzwhFbLWZrmSuCh72JGjJXQg0"
app_secret
:
"zL1uRrWFzwhFbLWZrmSuCh72JGjJXQg0"
...
@@ -158,10 +160,115 @@ class UtilsFeishuService{
...
@@ -158,10 +160,115 @@ class UtilsFeishuService{
}
}
return
system
.
getResult
(
null
,
"获取飞书用户信息失败"
);
return
system
.
getResult
(
null
,
"获取飞书用户信息失败"
);
}
}
getUUID
()
{
var
uuid
=
uuidv4
();
var
u
=
uuid
.
replace
(
/
\-
/g
,
""
);
return
u
;
}
//用户登录/获取userpin
async
checkAndLogin
(
pobj
){
// return system.getResultSuccess(null,"测试");
try
{
if
(
!
pobj
.
code
){
return
system
.
getResultFail
(
-
100
,
"code参数不能为空"
);
}
//获取 app_access_token(应用商店应用)
var
appAccessTokenRes
=
await
this
.
getAppAccessToken
();
if
(
appAccessTokenRes
.
status
!=
0
){
return
appAccessTokenRes
;
}
var
app_access_token
=
appAccessTokenRes
.
data
;
//获取飞书登录用户身份
var
userAccessTokenParams
=
{
"code"
:
pobj
.
code
,
"app_access_token"
:
app_access_token
,
"open_id"
:
pobj
.
open_id
||
""
};
var
userAccessTokenRes
=
await
this
.
getUserAccessToken
(
userAccessTokenParams
);
if
(
userAccessTokenRes
.
status
!=
0
){
return
userAccessTokenRes
;
}
var
userAccessTokenObj
=
userAccessTokenRes
.
data
;
//帐号登录---若用户信息已存在 则返回userpin 不存在则返回空
var
loginByUserNameParams
=
{
"appInfo"
:
pobj
.
appInfo
,
"actionType"
:
"getLoginByUserName"
,
"actionBody"
:
{
"openId"
:
userAccessTokenObj
.
open_id
,
"channelUserId"
:
userAccessTokenObj
.
open_id
,
// Y 渠道用户ID
"channelUserName"
:
userAccessTokenObj
.
name
,
// N 渠道用户名
"nickName"
:
userAccessTokenObj
.
name
,
// N 用户昵称
"head_url"
:
userAccessTokenObj
.
avatar_url
//头像
}
};
var
loginByUserNameRes
=
await
this
.
getLoginByUserName
(
loginByUserNameParams
);
if
(
loginByUserNameRes
&&
loginByUserNameRes
.
status
==
0
){
return
loginByUserNameRes
;
//获取userpin直接返回
}
// // 获取飞书用户信息
// var userInfoParams={
// user_access_token:userAccessTokenObj.access_token
// };
// var userInfoRes = await this.utilsFeishuSve.getUserInfo(userInfoParams);
// if(userInfoRes.status!=0){
// return userInfoRes;
// }
// var userInfoObj = userInfoRes.data;
}
catch
(
e
)
{
return
system
.
getResultFail
(
-
200
,
e
.
stack
);
}
return
system
.
getResultFail
(
-
100
,
"获取userpin失败"
);
}
//渠道通过账户进行登录,有则返回用户信息,没有则创建用户------>供后端调用
async
getLoginByUserName
(
pobj
){
pobj
.
actionBody
.
userpin
=
this
.
getUUID
();
var
tmpOpResult
=
await
this
.
utilsAuthSve
.
getLoginByUserName
(
pobj
,
pobj
.
actionBody
);
if
(
tmpOpResult
.
status
!=
0
&&
tmpOpResult
.
status
!=
2060
)
{
return
tmpOpResult
;
}
var
opResult
=
system
.
getResultSuccess
({
userpin
:
pobj
.
actionBody
.
userpin
});
if
(
tmpOpResult
.
status
==
2060
)
{
opResult
.
msg
=
tmpOpResult
.
msg
;
opResult
.
data
.
userpin
=
tmpOpResult
.
data
.
userpin
;
}
return
opResult
;
}
}
}
module
.
exports
=
UtilsFeishuService
;
module
.
exports
=
UtilsFeishuService
;
// var task = new UtilsFeishuService();
// var task = new UtilsFeishuService();
// task.resendAppTicket().then(res=>{
// var pobj = {
// console.log(res,"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
// "appInfo":{
// "id":17,
// "app_hosts":"gsbweb.qifu.gongsibao.com",
// "app_code":"gsbweb",
// "app_name":"公司宝官网web应用",
// "uapp_id":"22",
// "uapp_key":"201912141625",
// "uapp_secret":"8cbb846776874167b5c7e01cd0116c66",
// "contact_name":"宋毅",
// "contact_mobile":"15010929366",
// "contact_email":null,
// "is_enabled":1,
// "is_sign":0,
// "pay_type":"10",
// "delivery_type":"10",
// "created_at":"2020-03-11T22:13:48.000Z",
// "version":0,
// "token":"4ea34fccd85b442da189d0086849c0e2"
// },
// "actionType": "getLoginByUserName",
// "actionBody": {
// "openId":"ou_ed97ab357af62082e54c972051888229",
// "channelUserId":"ou_ed97ab357af62082e54c972051888229",
// "channelUserName":"庄冰",
// "nickName":"庄冰"
// }
// };
// task.getLoginByUserName(pobj).then(res=>{
// console.log(res,"ddddddddddddddddddddddddddddddd");
// })
// })
center-channel/app/config/routes/api.js
View file @
a3d4ae7a
...
@@ -4,7 +4,6 @@ const utilsAuthSve = system.getObject("service.utilsSve.utilsAuthSve");
...
@@ -4,7 +4,6 @@ const utilsAuthSve = system.getObject("service.utilsSve.utilsAuthSve");
const
logCtl
=
system
.
getObject
(
"service.common.oplogSve"
);
const
logCtl
=
system
.
getObject
(
"service.common.oplogSve"
);
const
utilsOrderSve
=
system
.
getObject
(
"service.utilsSve.utilsOrderSve"
);
const
utilsOrderSve
=
system
.
getObject
(
"service.utilsSve.utilsOrderSve"
);
const
utilsFeishuSve
=
system
.
getObject
(
"service.utilsSve.utilsFeishuSve"
);
const
utilsFeishuSve
=
system
.
getObject
(
"service.utilsSve.utilsFeishuSve"
);
const
feishuLoginSve
=
system
.
getObject
(
"service.common.feishuLoginSve"
);
module
.
exports
=
function
(
app
)
{
module
.
exports
=
function
(
app
)
{
//-----------------------新的模式---------web---------开始
//-----------------------新的模式---------web---------开始
...
@@ -369,7 +368,7 @@ module.exports = function (app) {
...
@@ -369,7 +368,7 @@ module.exports = function (app) {
return
;
return
;
}
}
pobj
.
appInfo
=
result
.
data
;
pobj
.
appInfo
=
result
.
data
;
result
=
await
feishuLogin
Sve
.
checkAndLogin
(
pobj
);
result
=
await
utilsFeishu
Sve
.
checkAndLogin
(
pobj
);
logCtl
.
info
({
logCtl
.
info
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"飞书小程序记录回调处理结果,method=login"
,
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"飞书小程序记录回调处理结果,method=login"
,
op
:
"app/config/routes/api.js/feishu/notify"
,
op
:
"app/config/routes/api.js/feishu/notify"
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment