4

安装了stormpath并使用google登录注册和登录。现在我正在尝试使用这个在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'})

基于这个教程

我得到和错误

Cannot create nor edit accounts of externally managed directories.

如果我尝试在stormpath 控制台中创建组,我会得到同样的错误。

在此处输入图像描述

如何给不同的用户不同的权限?

4

3 回答 3

2

Stormpath 不允许您为社交目录创建群组(如您的 Google 目录,请点击此处)。

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

我喜欢做的(个人)是这样的:

  • 一旦用户通过 Google 登录,我将在我的主 Stormpath 目录中创建该用户帐户的副本。
  • 然后,我将使用 Stormpath 目录中该用户的副本作为该用户的“主”帐户,并在那里创建组 / 等。
于 2016-01-26T16:58:04.330 回答
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. 使用谷歌用户登录。
  2. 在云目录中查找或创建使用
  3. 使用烧瓶登录切换到新的云用户

    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)
    
于 2016-02-08T09:02:34.173 回答
0

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

程序

  1. 登录到您的 Stormpath 帐户。

  2. 单击Applications顶部导航栏中的 。

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

  4. 在 下Account Linking Policy,设置StatustoEnabledAutomatic Provisioningto Enabled

  5. 而已!

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

有关更多详细信息,请参见此处

于 2017-02-13T23:39:05.090 回答