def token():
	post_data = get_post_data()

	is_invalid, error_message = _is_invalid_data(post_data)
	if is_invalid:
		abort(400, {'error': error_message })

	app = ClientApplication.find_by_credentials(post_data['client_key'], post_data['client_secret'])
	if app is None:
		abort(400, {'error': APP_NOT_FOUND })

	allowed_grant_types = app.grant_type.split(',')
	if post_data['grant_type'] not in allowed_grant_types:
		abort(400, {'error': GRANT_TYPE_NOT_ALLOWED })

	today = datetime.datetime.now()
	expires_at = today + datetime.timedelta(days=1)

	a = AccessToken()
	a.client_application = app.key
	a.expires_at = expires_at
	a.token = ah.generate_random_string()
	a.token_type = post_data['grant_type']

	if post_data['lead_token']:
		a.lead_token = post_data['lead_token']

	a.put()

	time.sleep(1)

	return jsonify(data=a.to_json()), 201
예제 #2
0
파일: lib.py 프로젝트: Lwxiang/wechat_test
def fresh_access_token():
    try:
        access_token = AccessToken.objects.get(id=1)
    except AccessToken.DoesNotExist:
        access_token = AccessToken()
    url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=%s&appid=%s&secret=%s" \
          % (grant_type, appID, appSecret)
    r = requests.get(url)
    message = r.json()
    access_token.token = message['access_token']
    access_token.expires_in = int(message['expires_in'])
    access_token.save()
예제 #3
0
 def post(self):
   username = self.request.get('username').strip().lower()
   password = self.request.get('password')
   try:
     if '@' in username:
       user_login = User.query(User.email_address == username).get()
       if user_login != None:
         username = user_login.username
     u = self.auth.get_user_by_password(username, password)
     token = AccessToken()
     token.user = self.user_model.key
     token.token = ''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(20))
     token.put()
     data = {}
     data["token"] = token.token
     self.response.out.write(json.dumps(data))
   except( auth.InvalidAuthIdError, auth.InvalidPasswordError):
     self.response.out.write(json.dumps(data))