Posts

Post not yet marked as solved
1 Replies
1.3k Views
I'm trying to send authentication request for apple using Python, but always giving Error: Invalid_Client here's my code : def login_with_apple(self, code): 	 		client_secret = generate_apple_client_secret() 		apple_url = "https://appleid.apple.com/auth/token" 		header = {'content-type': 'application/x-www-form- urlencoded'} 		data = 'client_id=' + settings.CLIENT_ID + '&client_secret=' + client_secret + '&code=' + code + '&grand_type=authorization_code' 		data = urllib.quote(data) 		resp = requests.post(apple_url, data=data, headers=header) 		access_token = None 		if resp.status_code in [200, 201]: 				try: 						access_token = resp.json() 				except ValueError: 						access_token = dict(parse_qsl(resp.text)) 		if not access_token or 'acces_token' not in access_token: 				raise OAuth2Error( 						'Error retrieving access token: %s' % resp.content 				) 		return access_token How I generates my client_secret: def generate_apple_client_secret(): 		private_key_file = open('/home/omar/Downloads/Privat-Key-file.p8', 'rb').read() 		year = new_date_time.now().year 		month = new_date_time.now().month 		day = new_date_time.now().day 		now = int(datetime.datetime(year, month, day).strftime('%s')) 		headers = {"alg": 'ES256', "kid": private_key_file} 		claims = { 				"iss": settings.SOCIAL_AUTH_APPLE_TEAM_ID, 				"iat": now, 				"exp": now + int(datetime.timedelta(days=180).total_seconds()), 				"aud": "https://appleid.apple.com", 				"sub": settings.CLIENT_ID 		} 		client_secret = jwt.encode( 				headers=headers, claims=claims, key=private_key_file, algorithm='ES256' 		) 		return client_secret
Posted
by omar96.
Last updated
.