Visualforce を使用したカスタムログインフローの作成
Visualforce と Apex コントローラを使用してカスタムログインフローをプログラムで作成できます。Visualforce を使用すると、ログインページの外観や動作、フロー完了後のユーザの移動先を詳細に制御できます。ログインページを最初から設計し、ページのあらゆる詳細を制御できます。
Visualforce ページの Apex コントローラにビジネスプロセスを定義します。Salesforce では入力変数が Visualforce ページのログインフローに渡されませんが、ユーザおよびログインコンテキストにはアクセスできます。次のいずれかの Apex メソッドを含めます。
- Auth.SessionManagement.finishLoginFlow() は、ログインフローが完了してユーザがホームページにリダイレクトされることを示します。
- Auth.SessionManagement.finishLoginFlow(startURL) は、ログインフローが完了してユーザが特定のページにリダイレクトされることを示します。
ログインフローは、制限されたセッションで実行されます。finishLoginFlow メソッドをコールするとセッションの制限が削除され、ユーザが Salesforce または Experience Cloud サイトにアクセスできるようになります。いつ、またはどの条件下でこのメソッドをコールしてセッション制限を解除するかを決定します。
以下は 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 ページに関連付ける各プロファイルにアクセス権を付与します。
- [設定] から、[クイック検索] ボックスに「Visualforce」と入力し、[Visualforce ページ] を選択します。
- 使用する Visualforce ページの横にある [セキュリティ] をクリックします。
- 使用可能なプロファイルのリストから、このログインフローに関連付けるプロファイルを追加します。
- [設定] から、Visualforce ページをログインフローとして指定し、プロファイルをフローに接続します。「ログインフローの設定とプロファイルへの接続」を参照してください。