Цель C Проверка OAuth2: Проверка кода -> Вызов кода - PullRequest
0 голосов
/ 13 сентября 2018

Я борюсь с этим.Чтобы получить токен, я должен предоставить свой верификатор кода, который я использовал для создания запроса кода, ранее отправленного на сервер.Сервер всегда отвечает, я отправил неверный код проверки.Так что мой метод должен быть неправильным со всей вещью SHA256 и т. Д., Но я никогда не делал этого.Можете ли вы сказать мне, что не так с моим методом?В руководстве написано:

После того, как приложение сгенерировало верификатор кода, оно использует его для создания проблемы с кодом.Для устройств, которые могут выполнять хэш SHA256, вызов кода представляет собой строку в кодировке BASE64-URL хэша SHA256 средства проверки кода.Клиентам, которые не имеют возможности выполнять хэш SHA256, разрешается использовать в качестве запроса строку верификатора простого кода.

- (NSString *)createCodeChallengeWithVerifier:(NSString *)codeVerifier {
    //Create ASCII
    const char *asciiString = [codeVerifier cStringUsingEncoding:NSASCIIStringEncoding];

    //Sha256
    unsigned char buf[CC_SHA256_DIGEST_LENGTH];
    CC_SHA256(asciiString, strlen(asciiString), buf);

    NSMutableString * shaString = [NSMutableString stringWithCapacity:(CC_SHA256_DIGEST_LENGTH * 2)];
    for (int i = 0; i < CC_SHA256_DIGEST_LENGTH; ++i) {
        [shaString appendFormat:@"%02x", buf[i]];
    }

    //Base 64 encode
    NSData *dataFromShaString = [shaString dataUsingEncoding:NSUTF8StringEncoding];
    return([dataFromShaString base64EncodedStringWithOptions:0]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...