Dal*_*ngh 2 android autologin oauth-2.0
我正在使用 OAuth2 进行自动登录。但是我不知道 getToken() 方法中的 scope 参数是什么,请帮帮我。
OAuth2 授权使用访问令牌来访问 API,而不是使用用户名和密码。在普通的 OAuth2 方法中,我们最初会使用范围、重定向 URL 和客户端 ID 向管理局请求授权代码,然后将代码与客户端 ID 和客户端密码交换以获得访问令牌和刷新令牌。但是使用 Android AccountManager 我们可以轻松获取 Google API 的访问令牌。
GoogleAuthUtil.getToken()接受三个参数:上下文、电子邮件地址和另一个称为范围的字符串参数。每个愿意谈论 OAuth 2.0 的信息资源都需要发布它使用的范围(或范围)。例如,要访问 Google+ API,作用域是oauth2:https://www.googleapis.com/auth/plus.me.您可以在一次调用中提供多个以空格分隔的作用域,并获取提供对所有这些作用域的访问的令牌。像这样的代码可能是典型的:
private final static String G_PLUS_SCOPE =
"oauth2:https://www.googleapis.com/auth/plus.me";
private final static String USERINFO_SCOPE =
"https://www.googleapis.com/auth/userinfo.profile";
private final static String SCOPES = G_PLUS_SCOPE + " " + USERINFO_SCOPE;
Run Code Online (Sandbox Code Playgroud)
getToken() 将是同步的,但有三件事使它变得不那么简单:
应用程序第一次请求令牌以访问某些资源时,系统将需要与用户进行交互以确保他们对此感到满意。
每当您要求令牌时,系统很可能会与身份后端服务进行网络对话。
处理这些请求的基础设施可能负载过重,无法立即为您获取令牌。与其让你等待,或者只是失败,它可能会要求你离开并稍后回来。
礼貌去 OAuth 身份工具
| 归档时间: |
|
| 查看次数: |
1910 次 |
| 最近记录: |