在 doGet(e)
// 取得 session //(v6.0.3)
session = getSession(e.parameter.userId);
訪客路由
Route.path("login", login);// 官方登入 路由
Route.path("logout", logout);// 官方登出 路由(v6.0.3)
大約在266行左右
/*============================================
存儲與當前用戶會話關聯的任何數據 {login: true|flase , user:{}}
(v6.0.3)
============================================*/
function setSession(session={}) {
let sId = Session.getTemporaryActiveUserKey();//臨時活動用戶的唯一識別密鑰
if(!sId && session.login === true && session.user.userId){
sId = session.user.userId;
}
if(sId){
let uProp = PropertiesService.getUserProperties();
uProp.setProperty(sId, JSON.stringify(session));
}
}
/*============================================
獲取當前用戶的識別密鑰
(v6.0.3)
============================================*/
function getSession(userId='') {
let sId = Session.getTemporaryActiveUserKey();//臨時活動用戶的唯一識別密鑰
if(!sId && userId){
sId = userId;
}
if(!sId)return { login: false, user:{}}; //無法取值,可能在無痕模式
let uProp = PropertiesService.getUserProperties();
let sData = uProp.getProperty(sId);
return sData ? JSON.parse(sData) : { login: false, user:{}};
}
大約在 126行
// ------------------------------------------ 官方 @管理=>好友登入
uri = global.url + `?op=login&userId=${userData.userId}&replyToken=${userData.replyToken}`;
contents.push(
{
"type": "button",
"style": "primary",
"margin": "md",
"height": "sm",
"action": {
"type": "uri",
"label": "好友登入",
"uri": uri
}
});
在所有檔案上,搜尋 href、url