私はDartで簡単なユーザー認証の例を探しています。今のところ私が見つけたのはhttps://github.com/dart-lang/bleeding_edge/blob/master/dart/tests/standalone/io/http_auth_test.dartです。 Dartを使用してサーバサイド認証の実例を指導してくれますか?前もって感謝します。ダーツのログイン/ログアウトの例
答えて
認証は膨大なトピックであり、達成したいことはあまり指定していませんが、DartアプリケーションのFacebook認証を構築するためのガイドをさせていただきます。どうして?使用している可能性のあるすべてのデータベース、データベース構造、モデルなどの設定方法、セキュリティの処理方法(トークンの生成など)については話す必要がないためです。
この知識があれば、他のサービス認証(Google+、Twitter)を実装し、必要に応じて独自のサービス認証(Google+、Twitter)を実装することができます。
まず、Facebook apps pageにアプリケーションを登録します。新しいアプリケーションを作成します。あなたはどこでもあなたが必要にインポートすること(例えばconfig.dart
)どこかの設定ファイルを指定すると
(アプリケーションドメインやサイトのURLの両方を必ず記入して)
:あなたは、このページを取得する必要があります
var config = {
'authentication': {
'facebook': {
'appId': '...',
'appSecret': '...',
'url': 'http://test.com/login/facebook'
}
},
};
次に、どこかのリンクを作成する必要があります。おそらく読んで、この時点で
<a href="{{ loginLinkUrl }}">Login with Facebook</a>
:あなたがリンクを指定してHTMLに今
import 'config.dart';
main() {
var fbConfig = config['authentication']['facebook'];
var appId = fbConfig['appId'];
var url = fbConfig['url'];
var loginLinkUrl = 'https://www.facebook.com/dialog/oauth/?client_id=$appId&redirect_uri=$url&state=TEST_TOKEN&scope=email';
}
:あなたは、Web UIを使用している場合は、あなたのダーツのスクリプトは、最初の設定をインポートして、ログインURLを作成することができますhttps://developers.facebook.com/docs/reference/dialogs/oauth/
Facebookのログインダイアログは、ユーザーがconfig(/login/facebook
)で指定したURLにユーザーをスローします。アプリケーションがそれに応答する必要があります。私はあなたが望むどのようにこれまでのルーティングが、基本的にそれは/login/facebook
要求を受信したサーバは、それが最初にエンコードするいくつかのプロパティを処理してみましょう:
var code = uri.encodeUriComponent(request.queryParameters['code']);
var appId = uri.encodeUriComponent(config['authentication']['facebook']['appId']);
var appSecret = uri.encodeUriComponent(config['authentication']['facebook']['appSecret']);
var url = uri.encodeUriComponent(config['authentication']['facebook']['url']);
あなたが最初import 'dart:uri' as uri
する必要があります。
これは、FacebookのAPIリクエストを行うコードのビット後:私はここにHTTPパッケージとQueryStringパッケージを使用してい
http.read('https://graph.facebook.com/oauth/access_token?client_id=$appId&redirect_uri=$url&client_secret=$appSecret&code=$code').then((contents) {
// "contents" looks like: access_token=USER_ACCESS_TOKEN&expires=NUMBER_OF_SECONDS_UNTIL_TOKEN_EXPIRES
var parameters = QueryString.parse('?$contents');
var accessToken = parameters['access_token'];
// Try to gather user info.
http.read('https://graph.facebook.com/me?access_token=$accessToken').then((contents) {
var user = JSON.parse(contents);
print(user); // Logged in as this user.
});
});
。
APIリクエスト後、ユーザー情報が手元にあります。これで、認証されたユーザーをセッションに格納するなどの作業を行うことができます。たとえば、この目的のためにHttpRequest.session
。ログアウトするには、セッションからデータを削除するだけです。
これは、Facebook認証を有効にするために必要な手順です。他の多くのWebサイトでも同様のワークフローが期待できます。 OAuth2
パッケージが必要な場合もあります。
- をFacebookの開発者プロファイルと適切なURLでアプリを作成しますので、まとめての
。
- アプリIDなどをいくつかの設定で書き留めます。
- 適切なログインリンクを作成します。
- Facebookログインによってユーザーがスローされるサーバーサイドコードを書き込みます。
- 認証されたユーザーを取得するために、いくつかのAPI呼び出しをサーバーに書き込みます。
楽しくお楽しみください!
私は3 part Tutorial about the login/authorization with DartにRikuloのセキュリティ機能を使って書きました。
セキュリティクラスによるログインは簡単です。とにかく、標準的な例では、特定の要件、特にアクション後のルーティング/リダイレクトに合わせていくつかの変更が必要です。
さらに、このチュートリアルにはダミーユーザーのログインが含まれています。これは明らかに本番用のオプションではありません。そのため、あなたは先に行くと、お使いのサーバーと話し、失敗するとログインに成功またはエラー時にユーザーオブジェクトのいずれかを返す次に
class _Authenticator extends Authenticator {
@override
Future login(HttpConnect connect, String username, String password) {...};
}
独自の認証を作成することによりRikuloからのログインのための標準的な機能を@Overrideする必要があります!
希望すると、これが役立ちます。
2014年2月23日にRikulo githubで最後にコミットされました。プロジェクトは終了しましたか? – expert
- 1. Facebookログインログアウトの実装
- 2. ログインログアウト制御
- 3. ダーツ暗号化解読AESの例
- 4. 角2ダーツ:ダーツでのNgModuleの使用
- 5. ViewControllerとTabBarViewcontrollerのログインログアウト?アップルのテレビ
- 6. ログインログアウトPHP設定変数
- 7. ダーツ:デフォルトのgitignore?
- 8. ダーツのSwagger-ui
- 9. ダーツのクライアントサーバー
- 10. JSON.decodeのダーツのNosuchMethod
- 11. ダーツAPIラッパーのテスト
- 12. ダーツでのURLエンコード
- 13. 私は3つのダーツのクラスを持っているダーツ
- 14. はダーツ
- 15. mysqlの特定のユーザの総ログインログアウト時間を計算する
- 16. ダーツの引数のパッキング/アンパック
- 17. Nodejsのデバッグ時のダーツAngular2
- 18. JavascriptとGoogleダーツの比較
- 19. ダーツ/フラッター認証の実装
- 20. ダーツ、[]演算子のオーバーロード?
- 21. ダーツの非同期iterableマッピング
- 22. ダーツのshelf_restによるユニットテスト
- 23. ダーツでコンパイル中のエラー
- 24. ダーツ:同期ポストリクエスト
- 25. ダーツ内部コンストラクタ
- 26. ダーツHTML5キャンバスライブラリ?
- 27. ダーツangle2 with @canActivate
- 28. Googleダーツ地域
- 29. Spring Security Shiro Grailsプラグインのカスタマイズ方法ログインログアウト機能?
- 30. 登録ログインログアウトiOSのアプリケーション(NSUserDefaults)Xcodeを使用
カイ、サンプルを作成し、readme.mdでgithubに投稿できますか?これは抜き出すための素晴らしいサンプルになるでしょう。 –