Django + Foursquare OAuth +用户登录

我在google和stackoverflow上查看了有关此主题的其他一些问题,但似乎找不到正确的解决方案。我正在尝试使用foursquare验证用户的应用程序。当用户使用foursquare登录时,我想以用户身份在数据库中创建然后存储他们的一些信息。这一切都很好。同时,我想以经过身份验证的用户身份登录。这是我遇到麻烦的地方。我的看法如下所示:


def foursq_done(request):

# get the access_token

access_token = request.session.get('access_token')

print access_token


# request user details from foursquare

params = {'oauth_token': access_token}

data = urllib.urlencode(params)

url = 'https://api.foursquare.com/v2/users/self'

full_url = url + '?' + data

print full_url

response = urllib2.urlopen(full_url)

response = response.read()

user_data = json.loads(response)['response']['user']

name = user_data['firstName']


try:

    user = User.objects.get(username=user_data['contact']['email'])

except User.DoesNotExist:

    # Save information on user

    user = User.objects.create_user(username=user_data['contact']['email'],

        first_name=user_data['firstName'], last_name=user_data['lastName'],

        email=user_data['contact']['email'], password=access_token)

    profile = Profile()

    profile.user = user

    profile.oauth_token = access_token

    profile.save()


user = authenticate(username=user_data['contact']['email'], password=access_token)


login(request, user)


# show the page with the user's name to show they've logged in

return TemplateResponse(request, 'foursq_auth/foursq_welcome.html', {'name': name}

这与我之前创建Django用户时使用的登录过程相同,

我不希Foursquare用户成为AnonymousUser,但是当我运行authenticate()时显然无法正常工作。我究竟做错了什么?


守着星空守着你
浏览 118回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python