1 interface IAuthServer{
2 CallReturn_t userAuth(string user,string passwd,int device_type);
3 CallReturn_t registerUser(UserRegisterInfo_t reginfo); // tested
4 };
瀹氫箟璁よ瘉鏈嶅姟鍣ㄦ帴鍙o紝userAuth()榪斿洖璁よ瘉鐢ㄦ埛鐨則oken
鎺ュ彛鏈嶅姟瀹炵幇錛?nbsp;
1 import os,os.path,sys,struct,time,traceback,signal,threading,copy,base64
2 import datetime,base64
3
4 from datetime import datetime
5 from base import *
6 import tcelib as tce
7 from showbox import *
8 import utils.misc
9 import utils.config
10 import utils.cipher
11
12
13 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "database.showbox.showbox.settings")
14
15 from django.db import connection
16 from django.db.models import Sum
17 from django.db import transaction
18 # import sns.core.models as cm
19 import database.showbox.core.models as core
20 import database.showbox.nosql.models as nosql
21
22 class AuthServerImpl(IAuthServer):
23 def __init__(self,app):
24 IAuthServer.__init__(self)
25 self.app = app
26
27 def userAuth(self, user, passwd, device_type, ctx):
28 cr = CallReturn_t()
29 try:
30 r = core.User.objects.get(user=user,passwd=passwd)
31 userinfo = {
32 "id":r.id,
33 "user":user,
34 "name":r.name,
35 "login_time":int(time.time()),
36 "user_type":SnsConsts.Authorized_User
37 }
38 token = utils.cipher.encryptToken(userinfo)
39 cr.value = token
40 except:
41 print traceback.format_exc()
42 cr = CallReturn_Error()
43 return cr
44
45 def registerUser(self, reginfo, ctx):
46 return IAuthServer.registerUser(self, reginfo, ctx)
47
48
49
50 class ServerApp:
51 def __init__(self):
52 pass
53
54 def getConfig(self):
55 #return self.app.getConfig()
56 pass
57
58 _handle = None
59 @classmethod
60 def instance(cls):
61 if cls._handle == None:
62 cls._handle = cls()
63 return cls._handle
64
65 def run(self):
66 tce.RpcCommunicator.instance().init('authserver').initMessageRoute('./services.xml')
67 server = tce.RpcCommunicator.instance().currentServer().findEndPointByName('mq_authserver').impl
68 adapter = tce.RpcAdapterEasyMQ.create('server',server)
69 #娌℃湁涓誨姩鍙戦佹秷鎭殑鎯呭艦
70 servant = AuthServerImpl(self)
71 adapter.addServant(servant)
72 tce.RpcCommunicator.instance().waitForShutdown()
73
74 if __name__ == '__main__':
75 ServerApp.instance().run()
鏈嶅姟鍣ㄥ緢綆鍗曪紝瀹炵幇鎺ュ彛IAuthService鐨勫姛鑳藉嚱鏁幫紝瀹氫箟涓涓猄erverApp錛岀劧鍚庤繍琛?nbsp;
瀹㈡埛璋冪敤嫻嬭瘯錛?br />
1 from datetime import datetime
2 from base import *
3 import tcelib as tce
4 from showbox import *
5 import utils.misc
6 import utils.config
7 import utils.cipher
8
9
10 def userAuthResult(result,prx):
11 print result
12
13 # queue:client 蹇呴』鍦ㄨ皟鐢ㄦ湇鍔″櫒鐨剋rite 闃熷垪mq
14 communicator =tce.RpcCommunicator.instance().init()
15 conn = tce.RpcConnectionEasyMQ.create('127.0.0.1',12301,'queue:mq_authserver')
16 local = tce.RpcConnectionEasyMQ.create('127.0.0.1',12301,'queue:mq_test_client',tce.AF_READ)
17 conn.setLoopbackMQ(local)
18
19
20 prx = IAuthServerPrx(conn)
21 prx.userAuth_async('test','111111',1,userAuthResult) #寮傛璋冪敤
22 print prx.userAuth('test','111111',1) #鍚屾璋冪敤
21,22琛屽垎鍒祴璇曚袱縐嶈皟鐢ㄦā寮?br />
client涓巗erver閫氳繃EasyMQ榪涜浼犻?br />easyMQ鏄釜鏈綆鍗曠殑娑堟伅闃熷垪瀹炵幇

]]>