使用Django框架通过网络和在Python与认证原生移动应用消费RESTful Web服务(RES

2019-07-31 01:57发布

我使用Django框架,将基于Web的客户端和移动本地应用(Android和iOS)消耗以Python编写与验证基于REST的Web服务。

简单的例子是,用户将登录使用电子邮件地址和密码,他取的移动设备上的API密钥,并将其存储,然后使用消耗更多的API的,而不是一次又一次的给用户凭据此API密钥。

我想用TASTYPIE或Django的活塞编写RESTful服务的,但请建议,否则,如果你知道任何更好的解决方案。

但是我的主要重点是在认证部分。 我应该使用OAuth实现身份验证或在具有响应API密钥SSL简单的基本身份验证就足够了。

Answer 1:

你可以写与Python标准库RESTful Web服务,第三方库不是绝对必要的。

你应该了解更多关于什么定义一个RESTful服务,并开始自己实现它。

对于它的价值,我使用CherryPy的是在几个项目中光框架。 它的简单和易于使用。 该网站甚至有一个关于如何在你的应用程序中实现REST部分。



Answer 2:

我受够了API密钥交换来完成它,就像你说的和使用SSL。 工作得很好。 还有一些注意事项,使HTTPS请求权工作在Android上。

private static HttpClient newHttpClient() {
    KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
    trustStore.load(null, null);

    SSLSocketFactory sf = new EasySSLSocketFactory(trustStore);
    sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

    HttpParams params = new BasicHttpParams();
    HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
    HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);

    SchemeRegistry registry = new SchemeRegistry();
    registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
    registry.register(new Scheme("https", sf, 443));

    ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry);
    return new DefaultHttpClient(ccm, params);
}


Answer 3:

我用的oauth2,这是简单的比OAUTH实现,但需要SSL实际上使其固定。

因为我用DJANGO REST框架 ,你可以找到设置, 在这里 。



文章来源: RESTFUL web services consumed by web and native mobile apps with authentication in python using django framework