科工云登录第三方平台

登录科工云控制台,实现导航栏单点登录

第一步:添加服务端配置参数

1.进入系统: 第三方平台-新增服务端。
2.输入第三方提供的配置参数和科工云平台提供给第三方平台的回调地址(redirect_uri)。
3.点击立即提交进行保存。

第二步:第三方应用关联科工云开通服务

1.进入系统: 开通服务申请-操作-处理。
2.选择关联的第三方平台,系统接口类型为OAuth2,填写第三方提供的系统入口链接
3.点击立即提交进行保存。

第三步:第三方应用显示在导航栏

1.进入系统:该服务处于开通状态的情况下,在列表是否显示在导航栏点击按钮出现弹框
2.点击确定按钮即可显示在导航栏

科工云作为客户端授权登录流程

科工云客户端单点登录客户端C#代码示例

 public ActionResult BigData_CallBack()
        {
            var member = LoginMember.Login();
            //第一步,请求获取code(请求OAuth服务器)
            string code = Request["code"] ?? "";
            if (string.IsNullOrEmpty(code))
            {
               //请求获取code为null 生成请求链接(请求OAuth服务器的code)
                List<tb_oauth_server> list = dal_oauth_server.GetList(0, " type=1", "").ToList();
                tb_oauth_server data_set = list.Where(c => c.name == "bigdata").FirstOrDefault();
                Random rd = new Random();
                string response_type = "code";
                string scope = "user_info";
                string state = Utils.MD5(rd.Next(1, 100000).ToString());

                BigDataOAuth e = new BigDataOAuth();
                var authorize  = e.GetAuthorizeUrl(data_set.authorize_url, data_set.client_id, data_set.redirect_uri);
                //生成请求链接重定向到OAuth服务器
                Response.Redirect(authorize);
                return null;
            }
            else
            {
                  //第二步,获取code之后请求获取token(请求OAuth服务器)
                  //获取应用的配置信息
                    List<tb_oauth_server> list = dal_oauth_server.GetList(0, " type=1", "").ToList();
                    tb_oauth_server data_set = list.Where(c => c.name == "bigdata").FirstOrDefault();
                  //此步骤包括根据授权码code获取accessToken,根据返回的accessToken获取用户信息
                    BigDataOAuth e = new BigDataOAuth();
                    BigDataModel authorize = e.GetModel(code,data_set.client_id,data_set.client_secret,data_set.redirect_uri,data_set.token_url,data_set.user_info_url);

                    var name = authorize.login;
                    var id = authorize.id;

                   //保存用户信息到本地服务器
                    Session["name"] = name;
                    Session["id"] = id;
                    string proviter = "大数据";
                    Session["proviter"] = proviter;
                    //获取第三方在科工云的绑定信息
                    tb_member_oauth auth = dal_member_auth.GetModelByOauthId(authorize.id);
                    if (auth == null && member == null)
                    {
                        Response.Redirect("/sso/login");
                    }
                    else if (member != null && auth == null)
                    {
                        tb_member_oauth auth_model = new tb_member_oauth();
                        auth_model.user_id = member.id;
                        auth_model.oauth_name = name;
                        auth_model.proviter = proviter;
                        auth_model.bind_time = DateTime.Now;
                        auth_model.oauth_id = id;
                        if (dal_member_auth.Insert(auth_model) > 0)
                        {
                            //tb_member new_model = dal_member.GetModel(mem_id);
                            var login_name = "Member" + Utils.MD5(member.loginname);
                            Memcache.Set(login_name, member, 60 * 2);
                            TYSystem.Public.Cookie.CreatCookie("_cookie_member_login", login_name, 2, Utils.GetTopDomainName(Request.Url.ToString()));
                        }

                        return RedirectToAction("Index", "Home");

                    }
                    else
                    {

                        var mem = dal_member.GetModel(auth.user_id);
                        var login_name = "Member" + Utils.MD5(mem.phone);
                        Memcache.Set(login_name, mem, 60 * 2);
                        TYSystem.Public.Cookie.CreatCookie("_cookie_member_login", login_name, 2, Utils.GetTopDomainName(Request.Url.ToString()));
                        return RedirectToAction("Index", "Home");
                    }
                    return RedirectToAction("Index", "Home");
                }
文档更新时间: 2021-03-04 08:57   作者:admin