【问题标题】:Google client API - limit oauth authentication to my domainGoogle 客户端 API - 将 oauth 身份验证限制为我的域
【发布时间】:2013-01-15 11:17:04
【问题描述】:

有没有人有任何使用Google Client API通过限制用户可以登录的域来授权他们的域的经验?

需要的titbit似乎是一个qs参数:hd='[Domain name]'

但在 OAuth2Parameters 参数对象中没有类似的东西

var oap = new OAuth2Parameters
{
        AccessToken = Current == null ? null : Current.AccessToken,
        RefreshToken = Current == null ? null : Current.RefreshToken,
        ClientId = GoogleClientId,
        ClientSecret = GoogleClientSecret,
        Scope = "https://spreadsheets.google.com/feeds https://docs.google.com/feeds https://www.googleapis.com/auth/userinfo.email",
        RedirectUri = HttpContext.Current.Request.Url.Scheme.Concatenate("://", HttpContext.Current.Request.Url.Authority,                                                                             "/Builder/Authentication/Receive"),
        AccessType = "offline" //ensures a refresh token (tho not currently working),
        *HD = //Hmm if only... :(((*

    };
var authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(oap);

return Redirect(authorizationUrl);

【问题讨论】:

    标签: oauth-2.0 google-api-client


    【解决方案1】:

    所以,事实上,我们只需要这样调整 url:

    var authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(oap);
    authorizationUrl += "&hd=" + "mydomain.com".UrlEncode();
    return Redirect(authorizationUrl);
    

    希望能对以后的人有所帮助。

    【讨论】:

    • 用户不能只修改redirect url,添加自己的域吗?
    【解决方案2】:

    使用 hd 参数。

    Google documentation

    警告:此标记记录在 OAuth 1.0 API 参考中。在版本 2 中没有记录但可以工作。

    重要提示:OAuth 1.0 已于 4 月 20 日正式弃用, 2012 年。它将根据我们的弃用政策继续工作,但我们建议您尽快迁移到 OAuth 2.0。

    【讨论】:

      猜你喜欢
      • 2015-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-16
      • 2021-07-23
      • 1970-01-01
      • 2020-12-18
      • 1970-01-01
      相关资源
      最近更新 更多