Bagikan melalui


OAuthPrompt class

Membuat permintaan baru yang meminta pengguna untuk masuk menggunakan layanan Akses Menyeluruh (SSO) Bot Frameworks.

Memperluas

Keterangan

Perintah akan mencoba mengambil token pengguna saat ini dan jika pengguna tidak masuk, itu akan mengirimi mereka OAuthCard yang berisi tombol yang dapat mereka tekan untuk masuk. Tergantung pada saluran, pengguna akan dikirim melalui salah satu dari dua kemungkinan alur masuk:

  • Alur masuk otomatis di mana setelah pengguna masuk dan layanan SSO akan meneruskan token akses pengguna menggunakan aktivitas event atau invoke.
  • Alur "kode ajaib" di mana setelah pengguna masuk, mereka akan diminta oleh layanan SSO untuk mengirim bot kode enam digit yang mengonfirmasi identitas mereka. Kode ini akan dikirim sebagai aktivitas message standar.

Kedua alur secara otomatis didukung oleh OAuthPrompt dan satu-satunya hal yang perlu Anda berhati-hati adalah Anda tidak memblokir aktivitas event dan invoke yang mungkin ditunda oleh prompt.

Nota

Anda harus menghindari mempertahankan token akses dengan bot Anda status lain. Layanan SSO Bot Frameworks akan menyimpan token dengan aman atas nama Anda. Jika Anda menyimpannya dalam status bot, bot dapat kedaluwarsa atau dicabut di antara giliran.

Saat memanggil perintah dari dalam langkah air terjun, Anda harus menggunakan token dalam langkah mengikuti perintah dan kemudian membiarkan token keluar dari cakupan di akhir fungsi Anda.

Prompt Usage

Saat digunakan dengan bot Anda DialogSet Anda cukup menambahkan instans baru prompt sebagai dialog bernama menggunakan DialogSet.add(). Anda kemudian dapat memulai perintah dari langkah air terjun menggunakan DialogContext.beginDialog() atau DialogContext.prompt(). Pengguna akan diminta untuk masuk sesuai kebutuhan dan token akses mereka akan diteruskan sebagai argumen kepada pemanggil langkah air terjun berikutnya:

const { ConversationState, MemoryStorage, OAuthLoginTimeoutMsValue } = require('botbuilder');
const { DialogSet, OAuthPrompt, WaterfallDialog } = require('botbuilder-dialogs');

const convoState = new ConversationState(new MemoryStorage());
const dialogState = convoState.createProperty('dialogState');
const dialogs = new DialogSet(dialogState);

dialogs.add(new OAuthPrompt('loginPrompt', {
   connectionName: 'GitConnection',
   title: 'Login To GitHub',
   timeout: OAuthLoginTimeoutMsValue   // User has 15 minutes to login
}));

dialogs.add(new WaterfallDialog('taskNeedingLogin', [
     async (step) => {
         return await step.beginDialog('loginPrompt');
     },
     async (step) => {
         const token = step.result;
         if (token) {

             // ... continue with task needing access token ...

         } else {
             await step.context.sendActivity(`Sorry... We couldn't log you in. Try again later.`);
             return await step.endDialog();
         }
     }
]));

Konstruktor

OAuthPrompt(string, OAuthPromptSettings, PromptValidator<TokenResponse>)

Membuat instans OAuthPrompt baru.

Properti

id

ID unik dialog. Mengatur ID unik dialog.

telemetryClient

Mendapatkan klien telemetri untuk dialog ini. Mengatur klien telemetri untuk dialog ini.

Properti yang Diwariskan

EndOfTurn

Mendapatkan hasil akhir giliran default.

Metode

beginDialog(DialogContext, PromptOptions)

Dipanggil saat dialog perintah didorong ke tumpukan dialog dan sedang diaktifkan.

continueDialog(DialogContext)

Dipanggil saat dialog perintah adalah dialog aktif dan pengguna membalas dengan aktivitas baru.

getUserToken(TurnContext, string)

Mencoba mengambil token tersimpan untuk pengguna saat ini.

recognizeToken(DialogContext)

Implementasi bersama fungsi RecognizeTokenAsync. Ini ditujukan untuk penggunaan internal, untuk mengonsolidasikan implementasi OAuthPrompt dan OAuthInput. Logika aplikasi harus menggunakan kelas dialog tersebut.

sendOAuthCard(OAuthPromptSettings, TurnContext, string | Partial<Activity>)

Mengirim kartu OAuth.

signOutUser(TurnContext)

Mengeluarkan pengguna dari layanan.

Metode yang Diwarisi

configure(Record<string, unknown>)

Metode fasih untuk mengonfigurasi objek.

endDialog(TurnContext, DialogInstance, DialogReason)

Saat ditimpa di kelas turunan, lakukan pembersihan untuk dialog sebelum berakhir.

getConverter(string)
getVersion()

String yang dikodekan yang digunakan untuk membantu dalam deteksi perubahan bot pada penyebaran ulang.

onDialogEvent(DialogContext, DialogEvent)

Dipanggil ketika peristiwa telah dinaikkan, menggunakan DialogContext.emitEvent(), dengan dialog saat ini atau dialog yang dimulai dialog saat ini.

repromptDialog(TurnContext, DialogInstance)

Saat ditimpa di kelas turunan, promporsi ulang pengguna untuk input.

resumeDialog(DialogContext, DialogReason, any)

Saat ditimpa di kelas turunan, melanjutkan dialog setelah dialog di atasnya pada tumpukan selesai.

Detail Konstruktor

OAuthPrompt(string, OAuthPromptSettings, PromptValidator<TokenResponse>)

Membuat instans OAuthPrompt baru.

new OAuthPrompt(dialogId: string, settings: OAuthPromptSettings, validator?: PromptValidator<TokenResponse>)

Parameter

dialogId

string

ID unik dialog dalam DialogSet induknya atau ComponentDialog.

settings
OAuthPromptSettings

Pengaturan yang digunakan untuk mengonfigurasi perintah.

validator

PromptValidator<TokenResponse>

Validator (Opsional) yang akan dipanggil setiap kali pengguna merespons permintaan.

Detail Properti

id

ID unik dialog. Mengatur ID unik dialog.

string id

Nilai Properti

string

Id untuk dialog.

Keterangan

Ini akan dibuat secara otomatis jika tidak ditentukan.

telemetryClient

Mendapatkan klien telemetri untuk dialog ini. Mengatur klien telemetri untuk dialog ini.

BotTelemetryClient telemetryClient

Nilai Properti

BotTelemetryClient

BotTelemetryClient digunakan untuk pengelogan.

Detail Properti yang Diwariskan

EndOfTurn

Mendapatkan hasil akhir giliran default.

static EndOfTurn: DialogTurnResult

Nilai Properti

Keterangan

Hasil ini menunjukkan bahwa dialog (atau langkah logis dalam dialog) telah menyelesaikan pemrosesan untuk giliran saat ini, masih aktif, dan menunggu lebih banyak input.

Diwariskan Dari dialog.EndOfTurn

Detail Metode

beginDialog(DialogContext, PromptOptions)

Dipanggil saat dialog perintah didorong ke tumpukan dialog dan sedang diaktifkan.

function beginDialog(dc: DialogContext, options?: PromptOptions): Promise<DialogTurnResult>

Parameter

dc
DialogContext

DialogContext untuk pergantian percakapan saat ini.

options
PromptOptions

Fakultatif. PromptOptions, informasi tambahan untuk diteruskan ke perintah yang sedang dimulai.

Mengembalikan

Promise<DialogTurnResult>

Promise yang mewakili operasi asinkron.

Keterangan

Jika tugas berhasil, hasilnya menunjukkan apakah perintah masih aktif setelah giliran diproses oleh perintah.

continueDialog(DialogContext)

Dipanggil saat dialog perintah adalah dialog aktif dan pengguna membalas dengan aktivitas baru.

function continueDialog(dc: DialogContext): Promise<DialogTurnResult>

Parameter

dc
DialogContext

DialogContext untuk pergantian percakapan saat ini.

Mengembalikan

Promise<DialogTurnResult>

Promise yang mewakili operasi asinkron.

Keterangan

Jika tugas berhasil, hasilnya menunjukkan apakah dialog masih aktif setelah giliran diproses oleh dialog. Perintah umumnya terus menerima balasan pengguna sampai menerima balasan pengguna sebagai input yang valid untuk permintaan tersebut.

getUserToken(TurnContext, string)

Mencoba mengambil token tersimpan untuk pengguna saat ini.

function getUserToken(context: TurnContext, code?: string): Promise<TokenResponse | undefined>

Parameter

context

TurnContext

Referensi konteks pengguna yang sedang dicari.

code

string

(Opsional) kode masuk yang diterima dari pengguna.

Mengembalikan

Promise<TokenResponse | undefined>

Respons token.

recognizeToken(DialogContext)

Implementasi bersama fungsi RecognizeTokenAsync. Ini ditujukan untuk penggunaan internal, untuk mengonsolidasikan implementasi OAuthPrompt dan OAuthInput. Logika aplikasi harus menggunakan kelas dialog tersebut.

function recognizeToken(dc: DialogContext): Promise<PromptRecognizerResult<TokenResponse>>

Parameter

dc
DialogContext

DialogContext untuk pergantian percakapan saat ini.

Mengembalikan

Promise<PromptRecognizerResult<TokenResponse>>

Janji yang menyelesaikan hasil

sendOAuthCard(OAuthPromptSettings, TurnContext, string | Partial<Activity>)

Mengirim kartu OAuth.

static function sendOAuthCard(settings: OAuthPromptSettings, turnContext: TurnContext, prompt?: string | Partial<Activity>): Promise<void>

Parameter

settings
OAuthPromptSettings

Pengaturan OAuth.

turnContext

TurnContext

Ubah konteks.

prompt

string | Partial<Activity>

Aktivitas pesan.

Mengembalikan

Promise<void>

signOutUser(TurnContext)

Mengeluarkan pengguna dari layanan.

function signOutUser(context: TurnContext): Promise<void>

Parameter

context

TurnContext

Konteks yang mereferensikan pengguna yang sedang keluar.

Mengembalikan

Promise<void>

Janji yang mewakili operasi asinkron.

Keterangan

Contoh ini menunjukkan pembuatan instans perintah lalu mengeluarkan pengguna.

const prompt = new OAuthPrompt({
   connectionName: 'GitConnection',
   title: 'Login To GitHub'
});
await prompt.signOutUser(context);

Detail Metode yang Diwarisi

configure(Record<string, unknown>)

Metode fasih untuk mengonfigurasi objek.

function configure(config: Record<string, unknown>): this

Parameter

config

Record<string, unknown>

Pengaturan konfigurasi yang akan diterapkan.

Mengembalikan

this

yang dapat dikonfigurasi setelah operasi selesai.

Diwariskan DariConfigurable.configure

endDialog(TurnContext, DialogInstance, DialogReason)

Saat ditimpa di kelas turunan, lakukan pembersihan untuk dialog sebelum berakhir.

function endDialog(_context: TurnContext, _instance: DialogInstance, _reason: DialogReason): Promise<void>

Parameter

_context

TurnContext

Objek konteks untuk giliran.

_instance
DialogInstance

Informasi status saat ini untuk dialog ini.

_reason
DialogReason

Alasan dialog berakhir.

Mengembalikan

Promise<void>

Keterangan

Dialog turunan yang perlu melakukan pengelogan atau pembersihan sebelum berakhir harus mengambil alih metode ini. Secara default, metode ini tidak berpengaruh.

DialogContext memanggil metode ini ketika dialog saat ini berakhir.

Lihat juga

Diwariskan Dari Dialog.endDialog

getConverter(string)

function getConverter(_property: string): Converter | ConverterFactory

Parameter

_property

string

Kunci konfigurasi pemilih bersyarah.

Mengembalikan

Pengonversi untuk konfigurasi pemilih.

Diwarisi DariConfigurable.getConverter

getVersion()

String yang dikodekan yang digunakan untuk membantu dalam deteksi perubahan bot pada penyebaran ulang.

function getVersion(): string

Mengembalikan

string

String unik yang seharusnya hanya berubah ketika dialog telah berubah dengan cara yang harus menghidupkan ulang dialog.

Keterangan

Ini default untuk mengembalikan dialog id tetapi dapat ditimpa untuk memberikan logika deteksi perubahan yang lebih tepat. Setiap dialog pada tumpukan yang memiliki perubahan versinya akan mengakibatkan peristiwa versionChanged akan dinaikkan. Jika kejadian ini tidak ditangani oleh bot, kesalahan akan dilemparkan yang mengakibatkan logika handler kesalahan bot dijalankan.

Mengembalikan string kosong akan menonaktifkan pelacakan versi untuk komponen bersama-sama.

Diwariskan Dari Dialog.getVersion

onDialogEvent(DialogContext, DialogEvent)

Dipanggil ketika peristiwa telah dinaikkan, menggunakan DialogContext.emitEvent(), dengan dialog saat ini atau dialog yang dimulai dialog saat ini.

function onDialogEvent(dc: DialogContext, e: DialogEvent): Promise<boolean>

Parameter

dc
DialogContext

Konteks dialog untuk pergantian percakapan saat ini.

e
DialogEvent

Peristiwa yang sedang dinaikkan.

Mengembalikan

Promise<boolean>

True jika peristiwa ditangani oleh dialog saat ini dan gelembung harus berhenti.

Diwarisi Dari dialog.onDialogEvent

repromptDialog(TurnContext, DialogInstance)

Saat ditimpa di kelas turunan, promporsi ulang pengguna untuk input.

function repromptDialog(_context: TurnContext, _instance: DialogInstance): Promise<void>

Parameter

_context

TurnContext

Objek konteks untuk giliran.

_instance
DialogInstance

Informasi status saat ini untuk dialog ini.

Mengembalikan

Promise<void>

Keterangan

Dialog turunan yang mendukung validasi dan logika permintaan ulang harus mengambil alih metode ini. Secara default, metode ini tidak berpengaruh.

DialogContext memanggil metode ini ketika dialog saat ini harus meminta kembali input dari pengguna. Metode ini diimplementasikan untuk dialog perintah.

Lihat juga

Diwariskan Dari Dialog.repromptDialog

resumeDialog(DialogContext, DialogReason, any)

Saat ditimpa di kelas turunan, melanjutkan dialog setelah dialog di atasnya pada tumpukan selesai.

function resumeDialog(dc: DialogContext, reason: DialogReason, result?: any): Promise<DialogTurnResult>

Parameter

dc
DialogContext

Konteks untuk giliran dialog saat ini.

reason
DialogReason

Alasan dialog melanjutkan. Ini biasanya akan DialogReason.endCalled

result

any

Fakultatif. Nilai pengembalian, jika ada, dari dialog yang berakhir.

Mengembalikan

Promise<DialogTurnResult>

Janji yang menyelesaikan hasil giliran dialog.

Keterangan

Dialog turunan yang mendukung percakapan beberapa giliran harus mengambil alih metode ini. Secara default, metode ini memberi sinyal bahwa dialog selesai dan kembali.

Dialogcontext memanggil metode ini saat melanjutkan dialog. Jika dialog sebelumnya pada tumpukan mengembalikan nilai, nilai tersebut berada dalam parameter result.

Untuk memulai dialog anak , gunakan DialogContext.beginDialog atau DialogContext.prompt; namun, dialog ini tidak akan selalu menjadi dialog yang memulai dialog anak. Untuk memberi sinyal ke konteks dialog bahwa dialog ini telah selesai, tunggu DialogContext.endDialog sebelum keluar dari metode ini.

Lihat juga

Diwariskan DariDialog.resumeDialog