Как я реализую сервер OpenID в направляющих?

Как правильно указано @AndroidEx, присваивания не являются выражениями в Kotlin, в отличие от Java. Причина в том, что выражения с побочными эффектами обычно обескуражены. См. это обсуждение по аналогичной теме.

Одно из решений состоит в том, чтобы разделить выражение и перенести присвоение из блока условий:

a = b
if (a != c) { ... }

Другое один из них - использовать функции из stdlib, такие как let , который выполняет лямбда с приемником в качестве параметра и возвращает результат лямбда. apply и run имеют схожую семантику.

if (b.let { a = it; it != c }) { ... }

if (run { a = b; b != c }) { ... }

Благодаря inlining это будет так же эффективно, как и обычный код взятый из лямбда.


Ваш пример с InputStream будет выглядеть как

while (input.read(bytes).let { tmp = it; it != -1 }) { ... }

. Также рассмотрите функцию readBytes для чтения a ByteArray из InputStream.

6
задан Community 23 May 2017 в 12:19
поделиться

3 ответа

Это "Никакое Руководство Дерьма По Поддержке OpenID В Ваших Приложениях", кажется, не пошаговое руководство для того, что Вы хотите сделать.

5
ответ дан 10 December 2019 в 00:46
поделиться

Это напоминает мне, что документы обзора для рубинового-openid сервера все еще отсутствуют. Но Вы видите пример, и пока документы не портированы, см. документы для реализации Python, которая следует за той же объектной моделью.

1
ответ дан 10 December 2019 в 00:46
поделиться

Аутентификация OpenID эпизода 68 Railscasts описывает, как сделать точно это. Этому приблизительно год, таким образом, Вам, вероятно, придется сделать некоторый материал по-другому. Я был бы также сильно или для обновленного или для более нового плагина OpenID (ссылка для той в видео маркирована "устаревшей").

Допустите ошибку, ожидайте, который должен поддерживать аутентификацию OpenID в приложении направляющих, которое Вы пишете, для не выполнения конечной точки OpenID в направляющих.. Вот руководство по реализации сервера/конечной точки OpenID в направляющих, в значительной степени формируют царапину.. gem install openid-server могло бы быть легче, но Вы узнаете больше, реализовывая его сами, и код довольно прост.

4
ответ дан 10 December 2019 в 00:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: