stormpath无法为google登录目录创建组

时间:2016-01-26 13:24:18

标签: python google-identity-toolkit stormpath

安装stormpath并使用谷歌登录注册并登录。 现在我正在尝试使用此

在stormpath中的google目录中创建组
from stormpath.client import Client
stormpath_client = Client(id=STORMPATH_CLIENT_APIKEY_ID, secret=STORMPATH_CLIENT_APIKEY_SECRET)
directory = stormpath_client.applications[0].account_store_mappings[1].account_store
directory.groups.create({'name': 'admins'})

基于this toturial

我得到并且错误

Cannot create nor edit accounts of externally managed directories.

如果我尝试在stormpath控制台中创建组,则会出现相同的错误。

enter image description here

如何为不同用户提供不同的权限?

3 个答案:

答案 0 :(得分:2)

Stormpath不允许您为社交目录创建群组(例如您的Google目录)。

你要做的是创建一个普通的Stormpath目录(不是社交目录),在那里创建你的用户,然后你可以做诸如创建组等的东西。

我喜欢(亲自)做的是:

  • 一旦用户通过Google登录,我将在我的主Stormpath目录中创建该用户帐户的副本。
  • 然后我会将Stormpath目录中该用户的副本用作该用户的“主”帐户,并在那里创建群组等。

答案 1 :(得分:2)

我已在stormpath

中为此python Flask解决方法的示例代码创建了一个要点

environment.py https://gist.github.com/ohadperry/f77a26ce758efa2990cb

authentication_controller.py https://gist.github.com/ohadperry/338e7e689d8c64158c06

stormpath_helper.py https://gist.github.com/ohadperry/50951e68f2375f0b9002

基本逻辑是:

  1. 使用Google用户登录。
  2. 在云目录中查找或创建用途
  3. 使用flask login

    切换到新的云用户
    from flask.ext.stormpath import User as StormpathUser
    from flask.ext.login import login_user 
    new_user_account.__class__ = StormpathUser
    # switching the session
    login_user(new_user_account, remember=True)
    

答案 2 :(得分:0)

现在也可以从Stormpath管理面板中解决问题。基本程序与其他两个答案中描述的程序非常相似,但现在只需在Stormpath网站上点击几下即可实现。

<强> PROCEDURE

  1. Log in到您的Stormpath帐户。

  2. 点击顶部导航栏中的Applications

  3. 单击您的应用程序,然后在左侧选择Policies 菜单。

  4. Account Linking Policy下,将Status设置为EnabledAutomatic ProvisioningEnabled

  5. 就是这样!

  6. 一旦完成,当用户第一次使用社交登录登录时,Stormpath将在应用程序的默认目录下创建另一个帐户,该帐户链接到社交登录帐户。您现在可以创建组并将默认目录中的用户帐户分配给该组,这将通过扩展将社交登录添加到该组。这是因为两个帐户(社交登录和默认目录中创建的另一个帐户)相互链接。

    有关详细信息,请参阅here