コード例 #1
0
        public static void GetLogin(string user, string pass, LoginCallBack call)
        {
            Global.clientID = Guid.NewGuid().ToString().Replace("-", "");
            SessionToken session = new SessionToken();

            try
            {
                string json_request = "{\"agent\": { \"name\": \"Minecraft\", \"version\": 1 }, \"username\": \"" + JsonEncode(user) + "\", \"password\": \"" + JsonEncode(pass) + "\", \"clientToken\": \"" + JsonEncode(Global.clientID) + "\" }";
                DoHTTPSPost("https://authserver.mojang.com/authenticate", json_request, (bool isSuccess, string result) =>
                {
                    if (isSuccess)
                    {
                        if (result.Contains("availableProfiles\":[]}"))
                        {
                            call(LoginResult.NotPremium, session);
                        }
                        else
                        {
                            session = JsonUtility.FromJson <SessionToken>(result);
                            if (!string.IsNullOrEmpty(session.accessToken))
                            {
                                call(LoginResult.Success, session);
                            }
                        }
                    }
                });
            }
            catch (Exception e)
            {
                UnityEngine.Debug.Log(e.Message);
            }
            call(LoginResult.InvalidResponse, session);
        }
コード例 #2
0
    internal void QQLogin(LoginCallBack cb, FailureCallBack fcb)
    {
        CurPlatformType = PlatformType.QQ;

        ssdk.Authorize(CurPlatformType);
        CurCB        += cb;
        CurFailureCB += fcb;
    }
コード例 #3
0
 static void InitLogin(List <LoginInterface> list)
 {
     for (int i = 0; i < list.Count; i++)
     {
         try
         {
             list[i].m_SDKName = list[i].GetType().Name;
             list[i].Init();
             s_loginCallBack += list[i].m_callBack;
         }
         catch (Exception e)
         {
             Debug.LogError("Init LoginInterface SDK Exception:\n" + e.ToString());
         }
     }
 }
コード例 #4
0
    IEnumerator Login()
    {
        AppManager.Instance.loading.SetActive(true);
        loginapi.user_phone = phone.text;
        loginapi.user_pwd   = password.text;

        string infoText = JsonUtility.ToJson(loginapi).ToString();

        WWWForm form = new WWWForm();

        form.AddField("uid", phone.text);
        form.AddField("info", infoText);

        using (UnityWebRequest www = UnityWebRequest.Post("http://39.107.240.174/api/addict/login?appid=addict&access_token=0000&sign=12345", form))
        {
            yield return(www.SendWebRequest());

            if (www.isNetworkError || www.isHttpError)
            {
                Debug.Log(www.error);
                AppManager.Instance.loading.SetActive(false);
            }
            else
            {
                string responseText = www.downloadHandler.text;

                LoginCallBack callback = new LoginCallBack();
                callback = JsonUtility.FromJson <LoginCallBack>(responseText);

                if (callback.errmsg == "OK")
                {
                    invalidText.text = "";
                    AppManager.Instance.phoneNumber = phone.text;
                    AppManager.Instance.FetchUserData();
                    AppManager.Instance.loading.SetActive(false);
                    Chatmanager.Instance.userName = AppManager.Instance.userdata.Name;
                    Chatmanager.Instance.StartConnection();
                    ScreenManager.Instance.Activate <HomeScreen>();
                }
                else if (callback.errmsg == "wrong username or userpwd")
                {
                    AppManager.Instance.loading.SetActive(false);
                    invalidText.text = "Invalid Username or Password!";
                }
            }
        }
    }
コード例 #5
0
        public void LoginSuccess(object sender, LoginCallBack data)
        {
            if (data.LoginStatus == Status.Yes)
            {
                MessageBoxResult result = MessageBox.Show("登陆成功");

                if (result == MessageBoxResult.OK)
                {
                    App.Current.Dispatcher.Invoke(() =>
                    {
                        ClientWindow cw = new ClientWindow(helper, data.UsersInfo, data.Talks, data.AddFriends, txtId.Text.Trim(), data.UserName);
                        cw.Show();
                        this.Close();
                    });
                }
            }
            else
            {
                this.btnLogin.IsEnabled = true;
                MessageBox.Show(data.msg);
            }
        }
コード例 #6
0
ファイル: ClientHandle.cs プロジェクト: FFFirer/WTalk.v.2.0
 public void LoginCallBack(LoginCallBack callBack)
 {
     return;
 }
コード例 #7
0
ファイル: DataHandle.cs プロジェクト: FFFirer/WTalk.v.2.0
        public static event EventHandler <TalkContract> GetMsgHandler;         //接收消息事件

        public static void Handle(object sender, string data)
        {
            string[] d = Data_Init(data);
            switch (d[0])
            {
            case "LOGINCALLBACK":
                try
                {
                    LoginCallBack callBack = DataHelpers.DeXMLSer <LoginCallBack>(d[1]);
                    if (LoginHandler != null)
                    {
                        LoginHandler(null, callBack);
                    }
                }
                catch
                {
                    break;
                }
                break;

            case "SIGNUPCALLBACK":
                try
                {
                    SignUpCallBack callBack = DataHelpers.DeXMLSer <SignUpCallBack>(d[1]);
                    if (SignupHandler != null)
                    {
                        SignupHandler(null, callBack);
                    }
                }
                catch
                {
                    break;
                }
                break;

            case "PRESENCEMSG":
                break;

            case "SEARCHCALLBACK":
                try
                {
                    SearchCallBack callBack = DataHelpers.DeXMLSer <SearchCallBack>(d[1]);
                    if (SearchHandler != null)
                    {
                        SearchHandler(null, callBack);
                    }
                }
                catch
                {
                    break;
                }
                break;

            case "ADDCALLBACK":
                User user = DataHelpers.DeXMLSer <User>(d[1]);
                if (UpdateFriendHandler != null)
                {
                    UpdateFriendHandler(null, user);
                }
                break;

            case "ADDCONFIRM":
                try
                {
                    AddConfirm confirm = DataHelpers.DeXMLSer <AddConfirm>(d[1]);
                    if (AddComfirmHandler != null)
                    {
                        AddComfirmHandler(null, confirm);
                    }
                }
                catch
                {
                    break;
                }
                break;

            case "REMOVE":
                RemoveContract remove = null;
                try
                {
                    remove = DataHelpers.DeXMLSer <RemoveContract>(d[1]);
                    if (RemoveFriendHandler != null)
                    {
                        RemoveFriendHandler(null, remove);
                    }
                }
                catch (Exception e)
                {
                    throw e;
                }
                break;

            case "TALK":
                TalkContract talk = null;
                try
                {
                    talk = DataHelpers.DeXMLSer <TalkContract>(d[1]);
                    if (GetMsgHandler != null)
                    {
                        GetMsgHandler(null, talk);
                    }
                }
                catch
                {
                    break;
                }
                break;

            default:
                break;
            }
        }
コード例 #8
0
ファイル: ServerHandle.cs プロジェクト: FFFirer/WTalk.v.2.0
        //用户登陆
        public LoginCallBack Login(TcpClient client, LoginContract contract)
        {
            using (var model = new Data.DataModel())
            {
                LoginCallBack callback = new LoginCallBack();
                var           user     = model.users.Where(p => p.UserId.Equals(contract.UserId)).FirstOrDefault();
                if (user.Password == contract.UserPwd)
                {
                    //将该用户写入出席服务
                    model.presenceusers.Add(new presenceuser {
                        UserId = contract.UserId, IPAddress = client.Client.RemoteEndPoint.ToString(), PresenceTime = DataHelpers.GetTimeStamp(), Status = Status.Online.ToString()
                    });

                    //获取好友列表
                    var friends = model.friends.Where(p => p.UserId.Equals(user.UserId)).Select((p) => new User
                    {
                        UserId   = p.FriendId,
                        UserName = model.users.Where(q => q.UserId.Equals(p.FriendId)).Select(q => q.UserName).FirstOrDefault(),
                        IsOnline = Status.Offline,
                        ip       = "127.0.0.1"
                    }).ToList();
                    //获取在线列表
                    var friendsInfo = model.friends.Join(model.presenceusers, a => a.FriendId, b => b.UserId, (a, b) => new User
                    {
                        UserId   = b.UserId,
                        UserName = model.users.Where(p => p.UserId.Equals(a.UserId)).Select(p => p.UserName).FirstOrDefault(),
                        IsOnline = Status.Online,
                        ip       = b.IPAddress
                    }).ToList();
                    //合并两个文件
                    foreach (var i in friendsInfo)
                    {
                        foreach (var i2 in friends)
                        {
                            if (i.UserId.Equals(i2.UserId))
                            {
                                i2.IsOnline = i.IsOnline;
                                i2.ip       = i.ip;
                            }
                        }
                    }
                    //获取待接收消息
                    var talks = model.waitforsendings.Where((p) => p.ReceiverId.Equals(contract.UserId)).Select(p => new TalkContract {
                        Content    = p.Msg,
                        SenderId   = p.SenderId,
                        ReceiverId = p.ReceiverId,
                        SenderName = model.users.Where(x => x.UserId.Equals(p.SenderId)).Select(y => y.UserName).FirstOrDefault()
                    }).ToList();
                    //获取待同意好友申请
                    var adds = model.addfriends.Where((p) => p.ReceiverId.Equals(contract.UserId) && p.Status.Equals(Status.Waiting.ToString())).Select((p) => new AddFriend {
                        UserId = p.SenderId,
                    }).ToList();
                    callback = new LoginCallBack(Status.Yes, friends, talks, adds, null, user.UserName);
                    model.SaveChanges();    //刷新数据库
                    return(callback);
                }
                else
                {
                    List <User>         friends = null;
                    List <TalkContract> talks   = null;
                    List <AddFriend>    adds    = null;
                    callback = new LoginCallBack(Status.No, friends, talks, adds, "登陆失败", "未登录");
                    return(callback);
                }
            }
        }
コード例 #9
0
 void Login(LoginCallBack cb, FailureCallBack fcb)
 {
 }
コード例 #10
0
    void OnAuthResultHandler(int reqID, ResponseState state, PlatformType type, Hashtable result)
    {
        if (state == ResponseState.Success)
        {
            if (result != null && result.Count > 0)
            {
                string res = MiniJSON.jsonEncode(result);
                //PrintDebugInfo.Add("Authorize Success !" + "Platform:" + type + " Result:" + res);
                Debug.Log("==========================================");
                Debug.Log(res);
                Debug.Log("==========================================");

                /*switch(CurPlatformType)
                 * {
                 *  case PlatformType.WeChat:
                 *      {
                 *          PrintDebugInfo.Add("解析:");
                 *          PrintDebugInfo.Add("country:" + resData["country"].ToString());
                 *          PrintDebugInfo.Add("refresh_token:" + resData["refresh_token"].ToString());
                 *          PrintDebugInfo.Add("province:" + resData["province"].ToString());
                 *          PrintDebugInfo.Add("gender:" + resData["gender"].ToString());
                 *          PrintDebugInfo.Add("icon:" + resData["icon"].ToString());
                 *          PrintDebugInfo.Add("unionid:" + resData["unionid"].ToString());
                 *          PrintDebugInfo.Add("openid:" + resData["openid"].ToString());
                 *          PrintDebugInfo.Add("nickname:" + resData["nickname"].ToString());
                 *          PrintDebugInfo.Add("userID:" + resData["userID"].ToString());
                 *          PrintDebugInfo.Add("city:" + resData["city"].ToString());
                 *          PrintDebugInfo.Add("expiresTime:" + resData["expiresTime"].ToString());
                 *          PrintDebugInfo.Add("expiresIn:" + resData["expiresIn"].ToString());
                 *          PrintDebugInfo.Add("token:" + resData["token"].ToString());
                 *      }
                 *      break;
                 *  case PlatformType.QQ:
                 *      {
                 *          PrintDebugInfo.Add("解析:");
                 *          PrintDebugInfo.Add("expiresIn:" + resData["expiresIn"].ToString());
                 *          PrintDebugInfo.Add("pfkey:" + resData["pfkey"].ToString());
                 *          PrintDebugInfo.Add("secret:" + resData["secret"].ToString());
                 *          PrintDebugInfo.Add("iconQzone:" + resData["iconQzone"].ToString());
                 *          PrintDebugInfo.Add("gender:" + resData["gender"].ToString());
                 *          PrintDebugInfo.Add("icon:" + resData["icon"].ToString());
                 *          PrintDebugInfo.Add("pay_token:" + resData["pay_token"].ToString());
                 *          PrintDebugInfo.Add("unionid:" + resData["unionid"].ToString());
                 *          PrintDebugInfo.Add("nickname:" + resData["nickname"].ToString());
                 *          PrintDebugInfo.Add("pf:" + resData["pf"].ToString());
                 *          PrintDebugInfo.Add("secretType:" + resData["secretType"].ToString());
                 *          PrintDebugInfo.Add("userID:" + resData["userID"].ToString());
                 *          PrintDebugInfo.Add("expiresTime:" + resData["expiresTime"].ToString());
                 *          PrintDebugInfo.Add("token:" + resData["token"].ToString());
                 *      }
                 *      break;
                 * }*/

                /*iOS 微信返回值
                 * {
                 *  "country":"",
                 *  "province":"",
                 *  "nickname":"\u732b\u62d6\u9aa1\u62c9",
                 *  "credential":
                 *  {
                 *      "access_token":"16_dKg-yNotgs3urDeZUGDbgSRkqh3O68CrFMFERufG_w9PBjM0rloVJhS0conFX-R184-h1ClBikAmyeXz4p_9F3_eeYsPEXYLdxiUrq3sw-k",
                 *      "openid":"oRaVf5m9CxHO9NUwOTe5KdAUKsbQ",
                 *      "scope":"snsapi_userinfo",
                 *      "refresh_token":"16_B2Z9Bk0-ZTNt6vpm5F9bAfsw4GfSX6QdCRBb-OecuCizAh8b7YYtU5lbbMgXDr7hEpz9RZjzIkp7AzghiIKpfSI7Bn1IrdMEvQWhW82jubE",
                 *      "expires_in":7200,
                 *      "unionid":"oUqxL1Bbbw0zFBxL4bMRWhb4hbzI"
                 *  },
                 *  "unionid":"oUqxL1Bbbw0zFBxL4bMRWhb4hbzI",
                 *  "openid":"oRaVf5m9CxHO9NUwOTe5KdAUKsbQ",
                 *  "privilege":[],
                 *  "city":"",
                 *  "sex":0,
                 *  "language":"zh_CN",
                 *  "headimgurl":"http://thirdwx.qlogo.cn/mmopen/vi_32/b9KoSo6KV9AlDjeViaEhFssSSBv9iaCB0NTF3rw3BXBic1yF4q6CicUjOicLElH2TPliaqiceVEG4ljIahic5JQmyVWcLg/132"
                 * }*/


                if (CurCB != null)
                {
                    Dictionary <string, object> resData = Json.Deserialize(res) as Dictionary <string, object>;
                    CurCB(resData["userID"].ToString(), resData["nickname"].ToString());
                    CurCB = null;
                }

                if (CurCB4WeChat != null)
                {
                    LitJson.JsonData jsonRes        = LitJson.JsonMapper.ToObject(res);
                    LitJson.JsonData credentialData = jsonRes["credential"];

                    CurCB4WeChat(jsonRes["openid"].ToString(), jsonRes["unionid"].ToString(), credentialData["access_token"].ToString(), jsonRes["nickname"].ToString());
                    CurCB4WeChat = null;
                }
            }
            else
            {
                PrintDebugInfo.Add("Authorize Success !" + " Platform:" + type);
            }
        }
        else if (state == ResponseState.Fail)
        {
                        #if UNITY_ANDROID
            PrintDebugInfo.Add("fail! throwable stack = " + result["stack"] + "; error msg = " + result["msg"]);
            if (CurFailureCB != null)
            {
                CurFailureCB(result["msg"].ToString());
            }
            CurFailureCB = null;
                        #elif UNITY_IPHONE
            print("fail! error code = " + result["error_code"] + "; error msg = " + result["error_msg"]);
                        #endif
        }
        else if (state == ResponseState.Cancel)
        {
            PrintDebugInfo.Add("cancel !");
            if (CurFailureCB != null)
            {
                CurFailureCB("用户取消授权登录!");
            }
            CurFailureCB = null;
        }
    }
コード例 #11
0
        public static void Handle(object sender, string data)
        {
            ServerHandle  server = new ServerHandle();
            IServerHandle ish    = (IServerHandle)server;
            TCPHelper     helper = (TCPHelper)sender;

            string[] d = Data_Init(data);
            switch (d[0])
            {
            case "LOGIN":
                LoginContract login = null;
                try
                {
                    login = WTalk.Helpers.DataHelpers.DeXMLSer <LoginContract>(d[1]);
                }
                catch { }
                LoginCallBack callBack = ish.Login(helper.tcpClient, login);
                if (ShowOnServerWindow != null)
                {
                    if (callBack.LoginStatus == Status.Yes)
                    {
                        UserArgs args = new UserArgs
                        {
                            IP = helper.tcpClient.Client.RemoteEndPoint.ToString(),
                            Id = login.UserId
                        };
                        string log = string.Format("{0}-->Login Success", helper.tcpClient.Client.RemoteEndPoint.ToString());
                        ShowOnServerWindow(null, log);
                        if (LoginHandler != null)
                        {
                            LoginHandler(null, args);
                        }
                    }
                    else
                    {
                        string log = string.Format("{0}-->Login Fail", helper.tcpClient.Client.RemoteEndPoint.ToString());
                        ShowOnServerWindow(null, log);
                    }
                }
                string msg = string.Format("LOGINCALLBACK@{0}", WTalk.Helpers.DataHelpers.XMLSer <LoginCallBack>(callBack));
                helper.SendMessage(msg);
                break;

            case "SIGNUP":
                SignupContract signup = null;
                try
                {
                    signup = DataHelpers.DeXMLSer <SignupContract>(d[1]);
                }
                catch { }
                SignUpCallBack signUpCallBack = ish.Signup(signup);
                if (ShowOnServerWindow != null)
                {
                    string log = string.Format("{0}-->Signup:{1}", helper.tcpClient.Client.RemoteEndPoint.ToString(), signUpCallBack.MoreMsg);
                    //if (callBack.LoginStatus == Status.Yes)
                    //{
                    //    string log = string.Format("{0}-->Signup", helper.tcpClient.Client.RemoteEndPoint.ToString());
                    //    ShowOnServerWindow(null, log);
                    //}
                    //else
                    //{
                    //    string log = string.Format("{0}-->Login Fail", helper.tcpClient.Client.RemoteEndPoint.ToString());
                    //    ShowOnServerWindow(null, log);
                    //}
                    ShowOnServerWindow(null, log);
                }
                helper.SendMessage(string.Format("SIGNUPCALLBACK@{0}", DataHelpers.XMLSer <SignUpCallBack>(signUpCallBack)));
                break;

            case "LOGOUT":
                //string logoutlog = string.Format("{0}-->登出", helper.tcpClient.Client.RemoteEndPoint.ToString());
                //if(ShowOnServerWindow != null)
                //{
                //    ShowOnServerWindow(null, logoutlog);
                //}
                break;

            case "SEARCH":
                SearchContract search = null;
                try
                {
                    search = DataHelpers.DeXMLSer <SearchContract>(d[1]);
                    SearchCallBack back = ish.Search(search);
                    helper.SendMessage(string.Format("SEARCHCALLBACK@{0}", DataHelpers.XMLSer <SearchCallBack>(back)));
                }
                catch
                {
                }
                break;

            case "ADD":
                AddContract add = null;
                try
                {
                    add = DataHelpers.DeXMLSer <AddContract>(d[1]);
                    AddComfirmArgs args = ish.Add(add);
                    if (args.IP != "Offline")
                    {
                        AddHandler(null, args);
                    }
                }
                catch
                {
                    break;
                }
                break;

            case "REMOVE":
                RemoveContract remove = null;
                try
                {
                    remove = DataHelpers.DeXMLSer <RemoveContract>(d[1]);
                    ish.RemoveFriends(remove);
                    if (RemoveFriendHandler != null)
                    {
                        RemoveFriendHandler(null, remove);
                    }
                }
                catch (Exception e)
                {
                    throw e;
                }
                break;

            case "TALK":
                TalkContract talk = new TalkContract();
                try
                {
                    talk = DataHelpers.DeXMLSer <TalkContract>(d[1]);
                    if (TalkHandler != null)
                    {
                        TalkHandler(null, talk);
                    }
                }
                catch
                {
                }
                break;

            case "ADDCONFIRMCALLBACK":
                AddConfirmCallBack accb        = null;
                AddCallBack        addCallBack = null;
                try
                {
                    accb        = DataHelpers.DeXMLSer <AddConfirmCallBack>(d[1]);
                    addCallBack = ish.AddComfirm(accb);
                    if (UpdateFriendListHandler != null)
                    {
                        UpdateFriendListHandler(null, addCallBack);
                    }
                }
                catch
                {
                    break;
                }
                break;

            default:
                break;
            }
        }