Можно ли добавить пользовательскую страницу принятия для входа в систему с Amazon - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть приложение Google SmartHome, для которого Google требуется специальная страница принятия / отказа от ответственности на устройстве Google SmartHome. В настоящее время мы используем собственный сервер OAuth 2.0 и имеем собственную страницу входа. Дополнительная страница входа не является проблемой для текущей настройки. Это похоже на стандартную страницу входа в систему через Amazon (LWA), которая спрашивает, согласен ли пользователь разрешить приложению доступ к информации профиля. Можно ли настроить эту страницу или добавить дополнительную страницу в процесс. Для дополнительной промежуточной страницы я подумал что-то вроде:

  • Использовать URL-адрес сайта, не принадлежащего LWA, на котором представлена ​​веб-страница отказа от ответственности
  • Отображать наш отказ от ответственности * перенаправление
  • каким-то образом вернемся в LWA, чтобы завершить sh последовательность OAuth

Блок кода ниже, конечно, не работает. Это должно быть больше псевдокода. Мне как-то нужно сделать новый GET с параметрами OAuth, а затем как-нибудь «убраться с дороги» / перенаправить обратно к начальному запросу SmartHome.

[httpGet] 
public ActionResult Index(string client_id, string redirect_uri, string state, string scope, string response_type)
        {
            ViewBag.Client_id = client_id;
            ViewBag.Redirect_uri = redirect_uri;
            ViewBag.State = state;
            ViewBag.Scope = scope;
            ViewBag.Response_type = response_type;

            return View();
        }
[httpPost] 
public ActionResult Accept(string client_id, string redirect_uri, string state, string scope, string response_type)
        {
           //don't know how return the query string
           return RedirectPermanentPreserveMethod("https://www.amazon.com/ap/oa");
        }
...


1 Ответ

0 голосов
/ 06 февраля 2020

Так что не так сложно, если вы просто посмотрите на документацию для redirectPermenent

public ActionResult Index(string client_id, string redirect_uri, string state, string scope, string response_type)
        {
            ViewBag.Client_id = client_id;
            ViewBag.Redirect_uri = redirect_uri;
            ViewBag.State = state;
            ViewBag.Scope = scope;
            ViewBag.Response_type = response_type;

            return View();  //disclaimer 
        }
[httpPost] 
public ActionResult Accept(string client_id, string redirect_uri, string state, string scope, string response_type)
        {
          string uri = "https://www.amazon.com/ap/oa?" + "client_id=" + Client_id + "&redirect_uri=" + Redirect_uri + "&state=" + State + "&scope=" + Scope + "&response_type=" + Response_type;
           return RedirectPermanentPreserveMethod(uri);
        }
'''
...