diff --git a/server/loginserver_be/getProductInfo.py b/server/loginserver_be/getProductInfo.py new file mode 100644 index 0000000..fd90dbd --- /dev/null +++ b/server/loginserver_be/getProductInfo.py @@ -0,0 +1,26 @@ +import json + +from google.oauth2 import service_account +from google.auth.transport.requests import AuthorizedSession + +packageName = '1' #客户端传入 +productId = '2' #客户端传入 +token = '3' #客户端传入 + +SCOPES = ['https://www.googleapis.com/auth/androidpublisher'] +SERVICE_ACCOUNT_FILE = 'service_account.json' +URL = 'https://androidpublisher.googleapis.com/androidpublisher/v3/applications/' + \ + '{packageName}/purchases/products/{productId}/tokens/{token}' + +credentials = service_account.Credentials.from_service_account_file( + SERVICE_ACCOUNT_FILE, + scopes=SCOPES) +authed_session = AuthorizedSession(credentials) +response = authed_session.get(URL.format + ( + packageName = packageName, + productId = productId, + token = token + )) +print(credentials.valid) +print(response.content.decode('utf-8')) diff --git a/server/loginserver_be/getUserIdFromIdToken.py b/server/loginserver_be/getUserIdFromIdToken.py new file mode 100644 index 0000000..2243dec --- /dev/null +++ b/server/loginserver_be/getUserIdFromIdToken.py @@ -0,0 +1,10 @@ +from google.oauth2 import id_token +from google.auth.transport import requests + +idToken = '1.2.test' #客户端传入 + +clientId = '115238488049587356357' + +idinfo = id_token.verify_oauth2_token(idToken, requests.Request(), clientId) +print(idinfo) +print('userId' + idinfo['sub']) diff --git a/server/loginserver_be/service_account.json b/server/loginserver_be/service_account.json new file mode 100644 index 0000000..0fd4edf --- /dev/null +++ b/server/loginserver_be/service_account.json @@ -0,0 +1,12 @@ +{ + "type": "service_account", + "project_id": "legendary-heroes-34893097", + "private_key_id": "a51622037d8bde2967410a7aeacb35b99d3d813b", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC9R6RnblZPk3Rd\nKVlY1aaIgDUYZIhA9s6yJaliUP8lhkJ5HdHAFob5IzNkzj1Ez7NBfM+NWxrKhmTt\nHnOgZ2Dm8Q87fgCHqTOjT6C9GtOpD17WNiaILiTgoVy5vso1Y+JsL3V5YzH8Lwdu\nk+3P4R/+gzgqDPfT+BYmkVIyC1znlLTnArD8YC8DRRStZlhbjUi8CxWdt7IOlvP5\ntpHYtmms7Tf6RcIpBK055hFy5v+bCwUUO/Iyv/60I5OluBwCjit8Nahy9jT/8Kev\nZs3CNsrbl2DuJuuna9JZkW93BUJLFt4jcerV9vJFqOnt27Cg7Pl/vBBtIrUaWEXp\n33cHgP7HAgMBAAECggEAOP44+THmiEiAmcqpDhAq+GAOXL1sr48BVu/zLFjyMsTW\nAC0j6sB9vMfGIlzdYvpdYeMohcpAa2oDOsjYDR0DtxYvvXynwTGIDG0eG8LXp8iq\niDq+6HNohEDiMEXMEj50v5mcuEPPmb05cijVyyng3dx6DWNhPjCtzsgkJVB5lXsT\nFiiECjy60cYWK7VPNn53OisbAUK+LTnayJRNRVY+lO7OQk3qIYO4oK3A9+dPIP3R\ngfn7ZAK6kSRSF/yN+M2ECINLLxF0rjfH1JnNz24G2Wh1y2QOQitrWA/hhjLk5xrD\nYX/3C6z2VMosxnNU9gdpk0vE1TKaIje+Md2YIqoITQKBgQDqnkflC0lL1WFXcSb7\n5z2k9GJYWto9VKa5hs5RcOxS3VAc9NWyxc9PInFlAP153z3oJ5LbA4Bwr2GY0RuE\nfxOeJkTWzVa0+mr/f3qJLMPqriqTQIdhwwPh7+IUsieFzBEgn7IBHVyLTMyENihO\ny/S6dnzCl55y2g/RRf3s2aB5VQKBgQDOh5nwt287XLxfryenfe9Emk7ku5z+nyzK\nwNwtALGhPFI+P2RJvzNyGoMs5MvYt5RJDedSt5XD0Zgeq6kyDf8jCswxqTH8hsB0\nsw6vogCJJlt2aw4NcnThHjmz2kW+s5sT3Xcqw+VaVVGFoRMcLQmij6ySotUe71CD\nTfiRC4QnqwKBgCSKWEos8tJzvkBfKCIthqVNRo/aPok0yO62NyXp/3R8cYDBBRNd\nyYbap2yCtfeoND0XBMFFj1h9iCbD0pRVMln8PdZyjqGLKuT2FsCMj0raq1jZwPwR\n4mXq9XwhrxQgjz5UgOW5i/NKF8Qzpx12mHv9/jpUYOIkYjhGvWCJGHwtAoGAeo/m\nPv/ctrG16GKdebw2fdPE9eCQrlnvzvLctqguwax2chJUhZ89/HzXU5EDl7x591CU\n8nWYHvkG+UyNv/Kmcjk6LE5oJ6AgHiEUmg3dm4ZzyLaHRFukGORDAgSKVz1mzkcj\nLPHL7eur0U1hddsUWLBCjVKsfwsuEH35ALqA1rkCgYAj58Vb9tFVukhn5r0dT7X8\nco6hwLU28h1+RDWF5S0fBaUT2BkSHyJnMkask8BNktTKuljVlBEbx1JNCPdMYqrM\nhgVUbn7Q8isB/BJJlHt+bhVWIc3bsy5YlNpH7QhFcEvNHUbuvOmNQj/OSE/IulDk\nAP7lZfSITPBqETZenJMXvw==\n-----END PRIVATE KEY-----\n", + "client_email": "jc001-213@legendary-heroes-34893097.iam.gserviceaccount.com", + "client_id": "115238488049587356357", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/jc001-213%40legendary-heroes-34893097.iam.gserviceaccount.com" +} diff --git a/server/loginserver_be/test.py b/server/loginserver_be/test.py new file mode 100644 index 0000000..9dca7b4 --- /dev/null +++ b/server/loginserver_be/test.py @@ -0,0 +1,13 @@ +from google.oauth2 import service_account +from google.auth.transport.requests import AuthorizedSession + +SCOPES = ['https://www.googleapis.com/auth/androidpublisher'] +SERVICE_ACCOUNT_FILE = '/root/pub/commservices/server/loginserver_be/service_account.json' + +credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES) + +authed_session = AuthorizedSession(credentials) +response = authed_session.get('https://androidpublisher.googleapis.com/androidpublisher/v3/applications/14/purchases/products/1/tokens/2') +print(credentials.valid) +print(str(response.content)) +#print(response.__dict__)