Browse Source

google login

Maxim Sokhatsky 11 years ago
parent
commit
7fec572910

+ 1 - 1
Makefile

@@ -1,6 +1,6 @@
 RELEASE := kakaranet
 COOKIE  := node_runner
-APPS    := kernel stdlib sasl gproc cowboy cowlib ranch erlydtl n2o face db sync server
+APPS    := kernel avz stdlib sasl gproc cowboy cowlib ranch erlydtl n2o face db sync server
 VER     := 1.0.0
 VM      := rels/web/files/vm.args
 SYS     := rels/web/files/sys.config

+ 3 - 3
apps/face/priv/static/google_sdk.js

@@ -13,10 +13,10 @@ function plusoneCallback(auth){
 }
 
 function render(){
-  gapi.signin.render('{{loginbtnid}}', {
+  gapi.signin.render('plusloginbtn', {
     'callback':'plusoneCallback',
-    'clientid':'{{clientid}}',
-    'cookiepolicy': '{{cookiepolicy}}',
+    'clientid':'146782506820.apps.googleusercontent.com',
+    'cookiepolicy': 'http://synrc.com',
     'requestvisibleactions':'http://schemas.google.com/AddActivity',
     'scope':'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email '
   });

+ 1 - 0
apps/face/priv/templates/index.html

@@ -12,6 +12,7 @@
 {{body}}
 <script>var transition = {pid: '', host: 'localhost' };</script>
 <script>function handle_web_socket(body) { console.log(String(bert.decodebuf(body))); } </script>
+<script src='https://code.jquery.com/jquery-2.1.0.min.js' type='text/javascript' charset='utf-8'></script>
 <script src='/static/nitrogen/bullet.js' type='text/javascript' charset='utf-8'></script>
 <script src='/static/nitrogen/n2o.js' type='text/javascript' charset='utf-8'></script>
 <script src='/static/nitrogen/bert.js' type='text/javascript' charset='utf-8'></script>

+ 20 - 15
apps/face/src/index.erl

@@ -5,13 +5,19 @@
 -include("../../server/include/requests.hrl").
 -include("../../server/include/settings.hrl").
 -include_lib("avz/include/avz.hrl").
--jsmacro([take/2,attach/1,join/1,discard/3,player_info/2,reveal/4,piece/2]).
+-include_lib("kvs/include/user.hrl").
+-jsmacro([take/2,attach/1,join/1,discard/3,player_info/2,reveal/4,piece/2,logout/0]).
 
 join(Game) ->
     ws:send(bert:encodebuf(bert:tuple(
         bert:atom('client'),
         bert:tuple(bert:atom("join_game"), Game)))).
 
+logout() ->
+    ws:send(bert:encodebuf(bert:tuple(
+        bert:atom('client'),
+        bert:tuple(bert:atom("logout"))))).
+
 attach(Token) ->
     ws:send(bert:encodebuf(bert:tuple(
         bert:atom('client'),
@@ -59,10 +65,9 @@ redraw_tiles([{Tile, _}| _ ] = TilesList) ->
 main() -> #dtl{file="index", bindings=[{title,<<"N2O">>},{body,body()}]}.
 
 body() ->
+    wf:wire(#api{name=plusLogin, tag=plus}),
     [ #panel{ id=history },
-%%      #button{ id = plusloginbtn, body = <<"Login">>},
-      avz:buttons([google]),
-      avz:sdk([google]),
+      #button{ id = plusloginbtn, body = <<"Login">>, postback=login_button},
       #br{},
       #label{ id = player1, body = "Player 1", style = "color=black;"},
       #label{ id = player2, body = "Player 2", style = "color=black;"},
@@ -93,19 +98,19 @@ body() ->
     ].
 
 event(terminate) -> wf:info("terminate");
-event(init) ->
-    {ok,GamePid} = game_session:start_link(self()),
-    event(attach),
-    event(join),
-    ets:insert(globals,{wf:session_id(),GamePid}),
-    put(game_session, GamePid);
+event(init) -> event(attach), event(join);
 
 event(combo)  -> wf:info("Combo: ~p",[wf:q(discard_combo)]);
 event(join)   -> wf:wire(join("1000001"));
 event(take)   -> wf:wire(take("1000001", wf:q(take_combo)));
 event(player_info) -> wf:wire(player_info(wf:f("'~s'",["maxim"]),wf:f("'~s'",[game_okey])));
 event(attach) -> 
-    Token = auth_server:generate_token(1000001,"maxim"),
+    {ok,GamePid} = game_session:start_link(self()),
+    ets:insert(globals,{wf:session_id(),GamePid}),
+    put(game_session, GamePid),
+    User = get(user),
+    Login = case User of undefined -> "maxim"; _ -> User#user.id end,
+    Token = auth_server:generate_token(1000001,Login),
     wf:wire(attach(wf:f("'~s'",[Token]))),
     ok;
 
@@ -231,10 +236,10 @@ event(reveal) ->
             wf:info("error discarded ~p", Discarded)
     end;
 
+event(login_button) -> wf:wire(logout());
+event({register,User}) -> wf:info("Register: ~p",[User]), kvs:add(User), wf:user(User);
+event({login,User}) -> wf:info("Login: ~p",[User]), wf:user(User);
 
-
-%%event(X) -> avz:event(X).
-
-event(Event)  -> wf:info("Event: ~p", [Event]).
+event(Event) -> wf:info("Event: ~p", [Event]).
 
 api_event(X,Y,Z) -> avz:api_event(X,Y,Z).

+ 1 - 1
apps/server/src/gas.erl

@@ -2,7 +2,7 @@
 -compile(export_all).
 
 %-define(ALLOWED, [gas,nsg_trn_lucky,game_session,game_manager,game_okey_ng_table_trn]).
--define(ALLOWED, [gas]).
+-define(ALLOWED, [gas,game_session]).
 
 log(Module, String, Args, Fun) ->
     case lists:member(Module,?ALLOWED) of

+ 4 - 0
rels/web/files/sys.config

@@ -2,6 +2,10 @@
  {sync, [{sync_mode, nitrogen}]},
  {nsx_idgen, [{game_pool,5000000}]},
  {n2o, [{route,routes},{port,8443},{transition_port,8000}]},
+ {face,[
+    {http_address, "http://skyline.synrc.com"},
+    {gplus_client_id, "146782506820.apps.googleusercontent.com"},
+    {gplus_cookiepolicy, "http://synrc.com"}]},
  {kvs,
      [{pass_init_db,true},
       {nodes,[]},

+ 1 - 0
rels/web/reltool.config

@@ -6,6 +6,7 @@
         [
          kernel,
          stdlib,
+         avz,
          sasl,
          shen,
          gproc,