2013-04-29 64 views
0

是否可以在WAMS中的服务器上的用户对象中添加其他属性?我想将我的用户表的Id主键存储在我的表格脚本中(安全)使用。目前唯一的ID是供应商特定的身份验证ID,但我希望能够允许用户选择身份验证方法。目前我(简化)表的设计如下:在Azure移动服务中扩展用户身份验证对象

用户表:

  • ID
  • googleId
  • twitterId
  • facebookId
  • 的名字,等...

联盟表

  • ID
  • 用户id
  • 姓名等

我想存储在排名表的用户id字段中的用户主键,然后对其进行查询,以确保只有用户去看看他们创建的联赛。目前,表脚本中的用户对象通过带Google/Twitter/Windows身份验证令牌的User对象发送,并且我必须执行查询以获取主键用户标识,每次我想对表执行操作时一个userId列。

理想的解决办法是,当我的用户表中插入脚本被称为上注册,登录我可以这样做:

// PSEUDO CODE 
function insert(item, user, request) { 
    var appUserId; 
    Query the user table using the user.userId Google/Twitter/Facebook id 
    If user exists { 
     // Set a persisted appUserId to use in all subsequent table scripts. 
     user.appUserId = results.id; 
    } else { 
     Set the GooTwitFace columns on the user table, from user.userId 
     insert the user then get the inserted record id 
      // Set a persisted appUserId to use in all subsequent table scripts 
      user.appUserId = insertUserPK; 
    } 
} 

然后,在随后的表脚本,我想在查询中使用user.appUserId

回答

0

如果你所要做的只是授权用户只能访问他们自己的数据,我不确定你甚至需要“用户”表。只需在用户对象上使用特定于提供者的userId来查询“联盟”表(确保userId列已编入索引)。这些值将是特定于提供者的,但这不应该有任何区别。

如果您试图在整个用户的Google/Facebook/Twitter登录中保留单一用户身份的概念,那么您需要一个“用户”表以及您所描述的查找类型是一个更复杂的问题。我们希望为这种情况提供支持作为一个开箱即用的功能。自己做这件事可能(但相当麻烦),让我知道如果这是你想要做的。

+0

谢谢Yavor,有多个供应商的用户ID是我想要做的。我想解决我的问题的另一种方法可能是会话对象? – conradj 2013-05-08 09:23:35

相关问题