如何在Web应用程序(而非IOS或Android应用程序)中使用AWS-Cognito进行用户身份验证?
亚马逊认知刚出来:
http://aws.amazon.com/cognito/
http://aws.amazon.com/about-aws/whats-new/2014/07/10/introducing-amazon-cognito/
来自FAQ:
问:我是否仍需要自己的后端身份验证和身份系统与Amazon Cognito?
不可以.亚马逊Cognito支持通过亚马逊,Facebook和谷歌登录,以及为未经身份验证的用户提供支持.使用Amazon Cognito,您可以支持联合身份验证,配置文件数据同步存储和AWS访问令牌分发,而无需编写任何后端代码.
它似乎是建立在移动应用程序的基础上(他们为Android和IOS提供SDK).
到目前为止,AWS php SDK和boto都没有引用Cognito,但亚马逊提到了我们可以触及的"后端API".
我正在尝试让Flask正确处理跨站点脚本.我从这里采取了跨域装饰器片段:http: //flask.pocoo.org/snippets/56/
在下面的代码中,我将装饰器片段和基本的烧瓶服务器放在一起.
我正在使用headers ='Content-Type'调用装饰器, 因为否则我得到"请求标头字段Access-Control-Allow-Headers不允许Content-Type".在浏览器中.
所以这是我的问题:按原样,下面的代码有效.但是,当我想限制只有这样的特定服务器时:
@crossdomain(origin='myserver.com', headers='Content-Type')
Run Code Online (Sandbox Code Playgroud)
我收到浏览器错误
" Access-Control-Allow-Origin不允许使用来源http://myserver.com."
除了origin ='*'之外,我无法使其工作.
有人有什么想法吗?
这是完整的代码:
from datetime import timedelta
from flask import make_response, request, current_app, Flask, jsonify
from functools import update_wrapper
def crossdomain(origin=None, methods=None, headers=None,
max_age=21600, attach_to_all=True,
automatic_options=True):
if methods is not None:
methods = ', '.join(sorted(x.upper() for x in methods))
if headers is not None and not isinstance(headers, basestring):
headers = ', '.join(x.upper() for x in headers)
if not isinstance(origin, basestring):
origin …Run Code Online (Sandbox Code Playgroud) 我将头撞在墙上,试图同时安装然后在弹性beantalk中启用服务。我想做的是:
在/etc/init.d其中安装服务指向我的python应用/opt/python/current/app/
按照.ebextensions/myapp.config文件中的指定,让Elastic Beanstalk启动并使服务保持活动状态。
(参考:http : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#customize-containers-format-services)
这是我的.ebextensions/myapp.config档案:
container_commands:
01_copy_service:
command: "cp /opt/python/ondeck/app/my_service /etc/init.d/"
02_chmod_service:
command: "chmod +x /etc/init.d/my_service"
services:
sysvinit:
my_service:
enabled: true
ensureRunning: true
files : [/etc/init.d/my_service]
Run Code Online (Sandbox Code Playgroud)
由于服务在container_commands之前运行,因此失败。如果我注释掉服务,先部署,然后取消对服务的注释,然后再次部署,它将起作用。但是我想进行单步部署,因为这将是一个自动扩展节点。
有解决方案吗?谢谢!
我正在尝试构建一个返回数组元素子集的乘积的函数。基本上我想构建一个prod_by_group执行此操作的函数:
values = np.array([1, 2, 3, 4, 5, 6])
groups = np.array([1, 1, 1, 2, 3, 3])
Vprods = prod_by_group(values, groups)
Run Code Online (Sandbox Code Playgroud)
结果Vprods应该是:
Vprods
array([6, 4, 30])
Run Code Online (Sandbox Code Playgroud)
对于元素之和,这里有一个很好的答案,我认为它应该类似于: /sf/answers/307121741/
我尝试采取log第一个,然后sum_by_group,然后exp,但遇到了数字问题。
对于按组排列的元素的最小和最大数量,这里还有一些其他类似的答案: /sf/answers/603621791/
编辑:感谢您的快速解答!我正在尝试它们。我应该补充一点,我希望它尽可能快(这就是我试图以某种矢量化方式将其放入 numpy 的原因,就像我给出的示例一样)。
编辑:我评估了迄今为止给出的所有答案,最好的答案由下面的 @seberg 给出。这是我最终使用的完整功能:
def prod_by_group(values, groups):
order = np.argsort(groups)
groups = groups[order]
values = values[order]
group_changes = np.concatenate(([0], np.where(groups[:-1] != groups[1:])[0] + 1))
return np.multiply.reduceat(values, group_changes)
Run Code Online (Sandbox Code Playgroud)