安装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'})
我得到并且错误
Cannot create nor edit accounts of externally managed directories.
如果我尝试在stormpath控制台中创建组,则会出现相同的错误。
如何为不同用户提供不同的权限?
答案 0 :(得分:2)
Stormpath不允许您为社交目录创建群组(例如您的Google目录)。
你要做的是创建一个普通的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
基本逻辑是:
使用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 强>
Log in到您的Stormpath帐户。
点击顶部导航栏中的Applications
。
单击您的应用程序,然后在左侧选择Policies
菜单。
在Account Linking Policy
下,将Status
设置为Enabled
和
Automatic Provisioning
至Enabled
。
就是这样!
一旦完成,当用户第一次使用社交登录登录时,Stormpath将在应用程序的默认目录下创建另一个帐户,该帐户链接到社交登录帐户。您现在可以创建组并将默认目录中的用户帐户分配给该组,这将通过扩展将社交登录添加到该组。这是因为两个帐户(社交登录和默认目录中创建的另一个帐户)相互链接。
有关详细信息,请参阅here。