Zhe*_*Tan 5 access-token firebase firebase-authentication flutter
目前,我有以下几件事:
情况是这样的,我想要保护API,只有授权用户才能调用API服务,所以我必须配置API服务器以在startup.cs中添加授权,如下所示:
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.Authority = "https://securetoken.google.com/xxxxxxx";
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidIssuer = "https://securetoken.google.com/xxxxxx",
ValidateAudience = true,
ValidAudience = "xxxxxx",
ValidateLifetime = true
};
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseAuthentication();
}
Run Code Online (Sandbox Code Playgroud)
之后在控制器中使用[Authorize]属性来允许只有授权用户才能调用API。这就是我的 API 配置部分。
在移动应用程序客户端中,我使用firebase_auth、google_sign_in和flutter_facebook_login包来执行 google、facebook 登录。
假设我将 Firebase Auth 与 Facebook 提供商一起使用,我的代码如下:
final FirebaseAuth _auth = FirebaseAuth.instance;
final GoogleSignIn _googleSignIn = new GoogleSignIn();
final FacebookLogin facebookSignIn = new FacebookLogin();
Future _testFacebookLogin() async {
final FacebookLoginResult result = await facebookSignIn.logInWithReadPermissions(['email', 'public_profile']);
switch (result.status) {
case FacebookLoginStatus.loggedIn:
final FacebookAccessToken accessToken = result.accessToken;
final FirebaseUser user = await _auth.signInWithFacebook(accessToken: accessToken.token);
assert(user.email != null);
final FirebaseUser currentUser = await _auth.currentUser();
assert(user.uid == currentUser.uid);
//Perform API call here?
break;
case FacebookLoginStatus.cancelledByUser:
break;
case FacebookLoginStatus.error:
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我能够登录并从 Facebook 获取访问令牌。我将访问令牌传递到 Firebase Auth,并且用户可以在 Firebase 下注册。
我的问题
| 归档时间: |
|
| 查看次数: |
1897 次 |
| 最近记录: |