如何在Django中以编程方式生成AccessToken?

问题描述 投票:10回答:6

我正在设置一个API。一切正常。我正在通过OAuth2 python lib创建令牌。我使用我的API的DeliciousPie。

我面临的问题..是AccessToken或Client模型中没有“创建”令牌方法。

我可以通过Django管理员创建一个accessToken,并且可以通过卷曲来创建一个:

myhost.com/oauth2/access_token(包含所有信息,密钥,客户端ID,用户和密码)

我的目标是在用户成功注册我的API后,会自动创建(运行)oAuth客户端,但我也想生成AccessToken。我无法对自己的服务器进行卷曲处理,因为它给了我一个重定向/连接被拒绝的错误,所以我想用Python编程地完成它。无论如何要这样做?这是一个代码段:

try:
        user = User.objects.create_user(username, password)
        user.save()

        if user:
            oauth_client = Client(user=user, name="api account", client_type=1, url="http://example.com")
            oauth_client.save()

            oauth_client_id = oauth_client.pk
            oauth_client_secret = oauth_client.client_secret

        if oauth_client:
            print user
            print oauth_client_id
            print AccessToken.objects.all()
            print '........'
            token = AccessToken(user=user, client=oauth_client_id, scope=6)
            token.save()

上面的最后两行,同时没有出现任何错误。.将不会保存新的AccessToken。

我正在设置一个API。一切正常。我正在通过OAuth2 python lib创建令牌。我使用我的API的DeliciousPie。我面临的问题..是在...

python django tastypie oauth2app
6个回答
7
投票

我正在使用https://github.com/caffeinehit/django-oauth2-provider。我设法通过使用模型来创建访问令牌和刷新令牌。我可能绕过了拨款流程。我尚未在生产中使用此代码,但在开发服务器中,我可以使用以此方式生成的访问令牌执行API调用。我认为应该在投入生产之前对其进行良好的测试。


1
投票

基于我在这里看到的https://github.com/caffeinehit/django-oauth2-provider/blob/master/provider/oauth2/views.py#L93令牌创建是通过这种方式完成的>>

access_token = AccessToken.objects.create(
    user=user,
    client=client,
    scope=scope
)
RefreshToken.objects.create(
    user=user,
    access_token=access_token,
    client=client
)

1
投票

这就是我能够使其工作的方式:


0
投票

我能够使用以下命令在Django 1.6中使用它:


0
投票

尝试以下,


0
投票

尝试这个,我刚才已经测试过了

© www.soinside.com 2019 - 2024. All rights reserved.