小编Gal*_*man的帖子

AWS Cognito作为网站的Django身份验证后端

我对Cognito的解读是,它可以代替本地Django管理数据库来验证网站用户.但是,我没有找到任何一个基本的"Hello,World"应用程序的例子,其中登录屏幕通过Cognito.如果有人可以发布一篇文章,逐步展示如何创建Hello World Django应用程序和Cognito用户池,以及如何通过调用AWS替换Django中的默认身份验证,我将非常感激. Cognito.

特别是我需要知道如何从Cognito管理站点收集设置对Cognito API的调用以验证用户所需的信息.

有两种情况需要考虑:App用户登录App,管理员登录django站点管理URL.我假设我想在两种情况下使用Cognito,否则我将留下一个潜在的漏洞,其中Admin URL使用较弱的登录技术.

AWS论坛和StackExchange上的当前答案要么说:

(1)使用Cognito对网站进行身份验证是浪费时间,它仅用于访问AWS资源

(2)这不是浪费时间.我即将放弃.我已经创建了一个示例Cognito用户池和用户组,并在网上搜索此用例的正确示例.(没有找到,或者我不会写.)

(3)https://github.com/capless/warrant,https://github.com/metametricsinc/django-warrant是从AWS论坛两种可能的解决方案.

python authentication django amazon-web-services amazon-cognito

30
推荐指数
2
解决办法
8215
查看次数

angular http:如何用自定义标题调用图像?

在html视图中,图像显示如下:

<img ng-src="{{element.image.url}}"> 
Run Code Online (Sandbox Code Playgroud)

element.image.url指向一个网址:/rest_api/img/12345678.

这工作正常,显示图像.

现在,我添加身份验证:

在对用户进行身份验证之前,每个资源都会响应一个http错误401,图像也是如此.验证成功后,会将令牌放在自定义标头中,并与每个$ http请求一起发送,以允许访问资源:

$http.defaults.headers.common['Authorization'] = token; 
Run Code Online (Sandbox Code Playgroud)

这适用于加载$ resource的Json文件.但是在认证之后,到图像的直接链接仍然是401.

如何使用自定义标题调用图像?

或者关于我应该怎么做的任何建议.

javascript authentication angularjs angular-resource

15
推荐指数
3
解决办法
2万
查看次数

使用Django OAuth2 Toolkit生成单一访问令牌

我正在使用最新的Django OAuth2 Toolkit(0.10.0)和Python 2.7,Django 1.8和Django REST框架3.3

使用时grant_type=password,我注意到一些奇怪的行为,任何时候用户要求新的访问令牌:

curl -X POST -d "grant_type=password&username=<user_name>&password=<password>" -u"<client_id>:<client_secret>" http://localhost:8000/o/token/
Run Code Online (Sandbox Code Playgroud)

一个新的访问令牌和刷新令牌创建.在令牌超时之前,旧的访问和刷新令牌仍然可用!

我的问题:

  • 我需要的是每次用户请求新的访问令牌时,旧的访问令牌将变为无效,无法使用并将被删除.
  • 此外,有没有一种方法,密码grunt类型不会创建刷新令牌.我在我的申请中没有任何用处.

我发现的一个解决方案是REST Framework OAuth一次为一个访问令牌提供配置.我并不急于使用该提供商,但我可能不会有选择.

python django oauth-2.0 django-rest-framework django-oauth

12
推荐指数
2
解决办法
4265
查看次数

为什么我需要花括号?

考虑这个简单的程序:

fails.c:

#include <stdio.h>                                            

int main(){                                                   
    int i = 10;                                                                                         
    if (i == 10)                                          
        int j = 11;                                                                                         
    return 0;        
}                                                             
Run Code Online (Sandbox Code Playgroud)

无法编译(gcc fails.c),给出此错误:

fails.c: In function ‘main’:
fails.c:7:3: error: expected expression before ‘int’
   int j = 11;
   ^
Run Code Online (Sandbox Code Playgroud)

但是这个很顺利:

#include <stdio.h>

int main(){
    int i = 10;
    if (i == 10){
        int j = 11;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我认为工作的目的是把它们放进{}去.但我想知道为什么这是必需的.

为什么它会以这种方式表现出来printf

#include <stdio.h>

int main(){
    int i = 10;
    if (i == 10) …
Run Code Online (Sandbox Code Playgroud)

c

12
推荐指数
1
解决办法
127
查看次数

根据日期和时间创建对象

我有一个活动模型,每个活动都有不同的节目.

class Event(models.Model):
    title = models.CharField(max_length=200)

class Show(models.Model):
    event = models.ForeignKey(Event, on_delete=models.CASCADE)
    date_time = models.DateTimeField(unique=True)
Run Code Online (Sandbox Code Playgroud)

我有另一个Ticket模型.每张票都应该是唯一的.这意味着每张票都是唯一的,并与Show和Seat相关.

class Ticket(models.Model):
    show = models.ForeignKey(Show)
    seat = models.ForeignKey(Seat)

    class Meta:
        unique_together = ('show', 'seat')
Run Code Online (Sandbox Code Playgroud)

我需要根据用户提供的开始日期和结束日期创建节目.假设这是一个JSON帖子:

{
    "event_id": 1,
    "start_date": "2018-02-16",
    "end_date": "2018-02-20",
    "time_list": ["11:00 AM", "8:00 PM"]
}
Run Code Online (Sandbox Code Playgroud)

从上面的JSON示例中,我需要创建Show start,如下所示:

# Start with the start_date as the date, and for each time from the time_list
Show.objects.create(
    event = 1,
    date_time = datetime.strptime('2018-02-16 11:00 AM', "%Y-%m-%d %I:%M %p")
)
Show.objects.create(
    event = 1,
    date_time = …
Run Code Online (Sandbox Code Playgroud)

python django python-3.x django-rest-framework

11
推荐指数
2
解决办法
591
查看次数

如何使用tls/ssl使用python发送office365的SMTP电子邮件

我正在尝试使用python从我的office365公司帐户发送电子邮件.我是python的新手.此代码以前在使用我的hotmail帐户时有效,但是现在我需要发送机密信息,我必须使用我的公司电子邮件.

我尝试了几件事.

  • 验证我的用户名和密码是否正确.
  • 同时使用python2和python3.两者都给出了同样的错误:535 5.7.3 Authentication unsuccessful
  • 我之前使用mailserver.starttls()时遇到上述错误,经过一些研究后,我试图通过
    证书.mailserver.starttls(certFile中= 'office365.cer')

我不清楚证书部分,但我的步骤包括,在线查找如何导出证书.使用chrome浏览器,microsoftonline.com有一个链证书.我可以导出root和根目录下面的级别,但不能导出最后一级.我不知道如何传递这两个文件,所以我只是传递了根证书.此时我收到错误:ssl.SSLError: [SSL] PEM lib (_ssl.c:3309)

我陷入了困境.任何帮助表示赞赏.代码如下

import smtplib

mailserver = smtplib.SMTP('smtp.office365.com',587)
mailserver.ehlo()
mailserver.starttls(certfile='office365.cer')
mailserver.ehlo()
mailserver.login('user@company.co', 'password')
mailserver.sendmail('user@company.co','user@company.co','python email')
mailserver.quit()
Run Code Online (Sandbox Code Playgroud)

python email ssl office365

10
推荐指数
3
解决办法
2万
查看次数

使用Titan在Django中打开RexProScriptException事务(图形DB)

我坚持使用我的TitanDB,Django1.8和Mogwai0.7.7软件包.我在localhost dev机器上有Graph数据库titan/cassandra,在rexster gremlin web界面中创建错误查询后,我的Django Object Graph Mapper mogwai停止工作.Titan仍在工作,数据存在,但Django停止使用它.

文件"/Users/x/envs/graph/lib/python2.7/site-packages/rexpro/connectors/base.py",第281行,在close_transaction中引发exceptions.RexProScriptException("事务未打开")RexProScriptException:transaction不开放.

谷歌搜索后我发现这个bitbucked修复 但我不知道如何应用它.也许lib更新与pip ....请帮助.

python django gremlin titan rexster

9
推荐指数
1
解决办法
163
查看次数

Django REST Framework中除AUTH_USER_MODEL之外的用户模型

我有一个架构问题.我正在使用Django(使用管理面板)和DRF(使用JWT进行无状态身份验证的api).

Django具有由模型表示的Admin用户,该用户与默认的Django用户模型大致相同.管理员仅使用Django Admin,不能使用DRF api.

DRF有API用户,只允许通过DRF使用api,不能与Django Admin或Django Session等交互.

我知道最好的方法是使用多模型继承,如:

class User(DjangoUserModel):
    pass

 class Admin(User):
      pass

 class API(User):
      pass

AUTH_USER_MODEL = "User"
Run Code Online (Sandbox Code Playgroud)

但问题是,那些用户完全不同.例如:API用户具有复杂的复合键作为用户名字段,这与简单的Admin用户名字段无法组合.还有很多其他的差异...

问题是:我可以使用不是AUTH_USER_MODELDRF实例的用户对象吗?所以self.request.user将存储一个没有以任何方式连接的模型实例AUTH_USER_MODEL.你们有没有做过类似的事情?

python django django-rest-framework

8
推荐指数
1
解决办法
748
查看次数

Django OAuth Toolkit - 注册用户

我已经浏览了Django OAuth Toolkit的提供者和资源的文档,但我能找到的只是how to 'authenticate' a user,而不是register用户的方式.

我可以在我的机器上设置所有内容,但不知道如何使用用户名和密码注册用户.我知道我错过了一些非常微妙的东西.如何准确注册用户并获取访问令牌以回复与我的资源服务器通信.

要么

是不是我首先使用普通的Django机制注册用户,然后获得相同的令牌?

python django django-registration django-rest-framework django-oauth

7
推荐指数
2
解决办法
2508
查看次数

使用IOS 8.3在Safari上进行Angular ng-click问题

这是一个奇怪的问题,这是一些难以产生和探索的问题.

在使用Angular构建Web应用程序时,我的老板发现应用程序中使用ng-click指令的所有按钮都不起作用.

现在,这个问题只发生在iphone 6 with IOS 8.3 and using the safari browser.

我可以说,当在iPhone5(所有版本),iPhone 6(IOS 9),Safari for Windows和所有其他浏览器(移动和桌面)上进行测试时,ng-click就像一个魅力.

该应用程序正在使用Angular 1.4.3.

这是按钮的代码,正如您所看到的,没有什么特别之处:

<button class="btn calculate-button" ng-click="onCalculate()">Calculate</button>
Run Code Online (Sandbox Code Playgroud)

在控制器中:

$scope.onCalculate = function () {
     //Do something... And then:
     $state.go('someplace');
};
Run Code Online (Sandbox Code Playgroud)



我想在这里提出了许多变化,包括ng-touch,ng-bind,建设自己的点击指令,如下所示:

.directive('basicClick', function($parse, $rootScope) {
    return {
        compile: function(elem, attr) {
            var fn = $parse(attr.basicClick);
            return function(scope, elem) {
                elem.on('click', function(e) {
                    fn(scope, {$event: e});
                    scope.$apply();
                });
            };
        }
    };
});
Run Code Online (Sandbox Code Playgroud)

找不到适合该问题的解决方案. …

iphone safari ios angularjs angularjs-ng-click

6
推荐指数
2
解决办法
8223
查看次数