uid | 字符串。token 对应的用户的ID,它在您的系统中必须是唯一的。 |
allow | 整数。是否允许进入教室。1 表示允许,0 表示不允许。 |
[ ismaster ] | (可选)整数。如果 token 对应的用户是该教室的导师,则为 1。若不输出此值,则默认为 0。 |
[ vdo ] | (可选)整数。导师和学员进入教室后默认分享的视频。0 表示电脑屏幕;1 表示摄像头。默认为 0。 |
[ uname ] | (可选)字符串。token 对应的用户的用户名称。它将显示在导师端,以及聊天框内。 |
[ avatar ] | (可选)字符串。token 对应的用户的头像URL。 |
public void ProcessRequest(HttpContext context)
{
String token = context.Request.QueryString.Get("token");
String appid = context.Request.QueryString.Get("appid");
// 验证 token,并依据 token 得到对应的用户的 uid、uname、avatar
bool token_verified = true; // token验证正确
String uid = "";
String uname = "";
String avatar = "";
bool allow = false;
bool ismaster = false;
if (token_verified)
{
// 依据token得到对应的用户的相关数据
uid = "123";
uname = "CYF";
avatar = "http://xxx.com/123.jpg";
// 判断 appid 对应的教室在当前时间点是否有课程,以及 token 对应的用户是否有上此课程的权限
allow = true; // 允许进入
// 判断 token 对应的用户是否是当前课程的导师
ismaster = true; // token对应的用户是当前课程的导师
}
JsonData json = new JsonData();
json.SetJsonType(JsonType.Object);
// 如果 token 验证正确,并且允许进入appid对应的教室,则输出相关数据,否则输出一个空的JSON对象
if (token_verified && allow)
{
json["uid"] = uid;
json["uname"] = uname;
json["avatar"] = avatar;
json["allow"] = allow ? 1 : 0;
json["ismaster"] = ismaster ? 1 : 0;
}
context.Response.ContentType = "text/plain";
context.Response.Write(json.ToJSON());
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>face2face test</title>
<style type="text/css">
html, body {
width:100%;
height:100%;
margin:0px;
padding:0px;
overflow:hidden;
}
#divRoom {
width:100%;
height:100%;
}
</style>
</head>
<body>
<div id="divRoom"></div>
<script type="text/javascript" src="https://face2face.net.cn/js/open.js"></script>
<script type="text/javascript">
$F.open.init({
container: document.getElementById('divRoom'), // 容器,网络教室将呈现在此Element中
appid: 10, // 教室的编号
ty: 3, // 一对一教室此处为固定值 3
token: '123', // 当前登录用户的身份认证标识,应该是由你自己的服务器生成的
redirect: 'http://YOUR_DOMAIN/back.htm' // (可选)当用户退出教室后,跳转到处页面。如果不设置此值,则跳转到默认页
});
</script>
</body>
</html>
小技巧:生成 token 的方式有很多,例如,可以将 用户ID、时间戳、再加一个自定义的字符串,按一定的格式加在一起加密。验证 token 时,用相同的方式解密,对比各个数据是否能对应上,比如自定义的字符串是否能对应上,以及时间戳是否在时效内(比如你可以认为超过10分钟失效)。另外,你还可以为 token 设置一个对应的对象,将其存在全局内存或数据库中,验证 token 时,将其与内存或数据库中的数据进行对比。
小技巧:将 redirect 设为你的网站同域下的一个网页的URL,然后在此网页中调用 parent 页中的某个方法,以处理用户退出教室后需要做的事。
var obj = $F.open.checkBrowser();
if(obj === true){
alert('支持');
}else{
alert('浏览器版本太低。chrome下载地址:' + obj.chrome + ';firefox下载地址:' + obj.firefox);
}