Достаточно ли будет использовать конечную точку для проверки подлинности на внутреннем сервере? - PullRequest
0 голосов
/ 01 июня 2019

Наш сервер получает токен доступа пользователя из приложения Android.

Наш сервер выполнит 2 действия

  1. Убедитесь, что токен доступа пользователя аутентифицирован и действителен.
  2. Извлечение электронной почты пользователя из токена доступа пользователя

Наш код выглядит как

# https://developers.facebook.com/docs/facebook-login/access-tokens/#apptokens
access_token_link = 'https://graph.facebook.com/oauth/access_token?client_id=' + constants.FACEBOOK_APP_ID + '&client_secret=' + constants.FACEBOOK_APP_SECRET + '&grant_type=client_credentials'

access_token = requests.get(access_token_link).json()['access_token']

debug_token_link = 'https://graph.facebook.com/debug_token?input_token=' + access_token_from_user + '&access_token=' + access_token    

'''
{
    "data": {
        "app_id": "000000000000000",
        "type": "USER",
        "application": "WeNote - Color Notes, To-do",
        "data_access_expires_at": 1567078169,
        "expires_at": 1564586876,
        "is_valid": true,
        "issued_at": 1559402876,
        "scopes": [
            "email",
            "public_profile"
        ],
        "user_id": "00000000000000000"
    }
}
'''
response = requests.get(debug_token_link) 

me_link = 'https://graph.facebook.com/me?fields=email&access_token=' + access_token_from_user

'''
{
    "email": "yccheok@yahoo.com",
    "id": "00000000000000000"
}
'''
response = requests.get(me_link) 

Мне было интересно, является ли шаг 1 необходимым?Является ли он избыточным?

Это потому, что если мы можем выполнить шаг 2 (Извлечь электронную почту пользователя из токена доступа пользователя) успешно, значит ли это, что маркер доступа пользователя гарантированно будет аутентифицирован и действителен?

...