У меня есть сервер в Web API2 с токеном аутентификации на предъявителя Owin.
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
Как я могу использовать/включить, чтобы приложение Mobile Native App использовало службу Web API2 для аутентификации.
Чтобы зарегистрировать пользователя:
Send a POST request to /api/account/register with:
header: Content-Type: application/json
body: { 'UserName': 'xxx', 'Password': 'yyy', 'ConfirmPassword': 'yyy' }
Теперь, когда у вас есть зарегистрированный пользователь, вам нужно "войти в систему" и получить обратно токен, который вы будете использовать с каждым последующим запросом, чтобы идентифицировать пользователя, делающего запрос:
Send a POST request to /token with:
header Content-Type: application/x-www-form-urlencoded
body: { grant_type=password&username=Alice&password=password123 }
Это вернет JSON, похожее на это:
{
'access_token':'boQtj0SCGz2GFGz,
'token_type':'bearer',
'expires_in':1209599,
'userName':'xxx',
'.issued":'Mon, 14 Oct 2013 06:53:32 GMT',
'.expires":'Mon, 28 Oct 2013 06:53:32 GMT'
}
Этот токен доступа - это то, что вам нужно, чтобы идентифицировать пользователя, делающего запрос, и хранить его где-нибудь. Когда вы делаете другой запрос в качестве пользователя "xxx", вам необходимо включить этот токен в виде заголовка следующим образом:
Authorization: Bearer boQtj0SCGz2GFGz
Обратите внимание, что токен будет намного длиннее. Это все, что есть. Каждый раз, когда вы делаете запрос, вам просто нужно включить токен в качестве заголовка.