私は、単一のユーザに対して複数のプロバイダを許可する簡単な認証システムを構築しています。私はomniauth
とdevise
を使用しています。特定のプロバイダと1人のユーザーがアプリケーションからリンクを解除する方法はありますか?アンリンクomniauthプロバイダ
プロバイダーのリンクを解除すると、oauthアプリケーションからユーザーを削除し、この特定のプロバイダー(Facebook、Twitter)に関するデータ(uidなど)をデータベースから削除することを意味します。つまり、ユーザーは、リンクを解除した後、Facebookなどを使用してサインインすることはできません。
私はすでにthisをチェックしており、あまり助けにはなりません。私はまた、devise
とomniauth
ドキュメントをチェックアウトしました。これを達成するための方法はありません。 OAuth
トークンのリンクを解除するには、各プロバイダに自分でリクエストする必要がありますか?
「*プロバイダのリンクを解除する」とはどういう意味ですか? – Uzbekjon
@Uzbekjon私は説明を更新しました。 –
あなたは 'user.authentications.find_by(provider: 'facebook')。destroy'のようなOAuthの詳細を格納するために使用しているテーブルの行を削除するだけです。 Facebookには、アプリの権限を取り消すためのAPIエンドポイントもあります。 https://developers.facebook.com/docs/facebook-login/permissions/requesting-and-revoking – max