この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Visualforce を使用したカスタムログインフローの作成

Visualforce と Apex コントローラを使用してカスタムログインフローをプログラムで作成できます。Visualforce を使用すると、ログインページの外観や動作、フロー完了後のユーザの移動先を詳細に制御できます。ログインページを最初から設計し、ページのあらゆる詳細を制御できます。

Visualforce ページの Apex コントローラにビジネスプロセスを定義します。Salesforce では入力変数が Visualforce ページのログインフローに渡されませんが、ユーザおよびログインコンテキストにはアクセスできます。次のいずれかの Apex メソッドを含める必要があります。

  • Auth.SessionManagement.finishLoginFlow() は、ログインフローが完了してユーザがホームページにリダイレクトされることを示します。
  • Auth.SessionManagement.finishLoginFlow(startURL) は、ログインフローが完了してユーザが特定のページにリダイレクトされることを示します。

ログインフローは、制限されたセッションで実行されます。finishLoginFlow メソッドをコールするとセッションの制限が削除され、ユーザが Salesforce またはコミュニティにアクセスできるようになります。いつ、またはどの条件下でこのメソッドをコールしてセッション制限を解除するかを決定します。

以下は Visualforce ページのログインフローの例です。ユーザがボタンをクリックして finishLoginFlow メソッドを呼び出します。ログインフローが正しく機能するように showHeader="false" を指定します。

1<apex:page showHeader="false" controller="VFLoginFlowController">
2  <h1>You are in VF Login Flow</h1>
3  <apex:form >
4  <apex:commandButton action="{!FinishLoginFlowHome}" value="Finish and Go to Home"/>
5  <apex:commandButton action="{!FinishLoginFlowStartUrl}" value="Finish and Go to StartUrl"/>
6  </apex:form>
7</apex:page>

以下は、ビジネスプロセスを定義する Apex コントローラの例です。

1public class VFLoginFlowController {
2
3    public PageReference FinishLoginFlowStartUrl() {
4        //do stuff
5        
6        //finish the login flow and send you to the startUrl (account page in this case)
7        return Auth.SessionManagement.finishLoginFlow('/001');
8    }
9
10
11    public PageReference FinishLoginFlowHome() {
12        //do stuff
13        
14        //finish the login flow and send you the default homepage
15        return Auth.SessionManagement.finishLoginFlow();
16    }
17}

この Visualforce ページアクセスに関連付ける各プロファイルを指定します。

  1. [設定] から、[クイック検索] ボックスに「Visualforce」と入力し、[Visualforce ページ] を選択します。
  2. 使用する Visualforce ページの横にある [セキュリティ] をクリックします。
  3. 使用可能なプロファイルのリストから、このログインフローに関連付けるプロファイルを追加します。
  4. [設定] から、Visualforce ページをログインフローとして指定し、プロファイルをフローに接続します。「ログインフローの設定とプロファイルへの接続」を参照してください。