Сервис C ++ grp c: как хранить пользовательские данные сеанса - PullRequest
0 голосов
/ 11 марта 2020

Я хочу реализовать пользовательскую логику аутентификации c, и когда пользователь авторизуется с помощью специального метода, я хочу установить переменную сеанса на стороне сервера, которая представляет идентификатор пользователя для использования в других запросах. Как можно реализовать поведение на C ++ GRP C сервере?

Ответы [ 2 ]

0 голосов
/ 20 марта 2020

В дополнение к ответу Цзянтао, который относится к grpc_server_credentials , вы, вероятно, также захотите взглянуть на grpc_auth_metadata_processor , который используется на серверах для обработки метаданных аутентификации в запросе и определите, будет ли запрос разрешен.

Из вашего описания похоже, что вы пытаетесь выполнить некоторые дополнительные решения по авторизации, помимо gRP C аутентификации. Если это так, неплохо было бы отделить ваш логин авторизации c от gRP C. Возможно, вы могли бы выполнить обычную аутентификацию gRP C, получить информацию из AuthContext, как упомянул Цзянтао, и затем продолжить работу с вашим собственным логином c. Внедрение логики авторизации c в стек gRP C может оказаться не лучшим выбором. Пожалуйста, дайте нам знать, если у вас есть дополнительные вопросы, и мы будем рады помочь! : -)

0 голосов
/ 19 марта 2020

Не могли бы вы уточнить, что вам нужно? Вам нужна индивидуальная аутентификация или авторизация? Как только рукопожатие TLS завершается в gRP C, вы можете получить информацию об аутентификации из AuthContext и затем принять решение об авторизации.

...