Я начинаю писать приложение, в соответствии с которым мобильное приложение (Android/IPhone) будет связываться с бэкэндом GAE (Python) с помощью серии вызовов веб-API с использованием JSON.
Я не могу использовать учетные записи Google для аутентификации, поэтому мне нужно реализовать свой собственный auth. У меня есть идея, как это сделать, но я не уверен, есть ли лучший способ.
Может ли кто-нибудь помочь с некоторыми примерами кода/предложениями о том, как достичь ниже, пожалуйста?
Метод
- Мобильное приложение вызывает метод Login на сервере, который проверяет подлинность и создает ключ сеанса в хранилище и возвращает это в приложение - не уверен, как сгенерировать ключ/сеанс или где на запрос/ответ он должен быть.
- При каждом вызове приложение передает этот ключ для аутентификации сервера и разрешает действие, если оно проходит.
- Пользователю не нужно снова подключаться к мобильному телефону, если они явно не выходят из системы или не теряют ключ.
Метод входа - без генерации ключей
class Login(webapp.RequestHandler):
def post(self):
args = json.loads(self.request.body)
email = args['e']
pwd = args['p']
ret = {}
user = User.gql('WHERE email = :1', email).get()
if user and helpers.check_password(pwd, user.password):
ret['ret_code'] = 0
ret['dn'] = user.display_name
else:
ret['ret_code'] = 1
self.response.headers['Content-Type'] = 'application/json'
self.response.out.write(json.dumps(ret))