認証と認可へのイントロ


Authについて話すとき、初期の開発者は、認証と認証の違いが何かを混乱させるのは簡単です.つは交換可能について話されます、しかし、彼らは実は2つの全く異なるものを意味します.この記事では、それぞれの用語が特に関係していることについて説明します.そして、それぞれのアプリケーションで実装することが重要です.私はまた最近私の最近のアプリでAuthを実装した方法を示します.

認証


認証は、ユーザーがユーザであると主張するユーザーではなく、湿気を検査するプロセスです.これは、いくつかの資格情報を取得し、それらの資格情報を使用してユーザーのアイデンティティを確認することによって行われます.単純なユーザー名またはパスワードの組み合わせ、captchaテスト、または2 fa(2因子認証)のようにユーザーを認証するために使用できる複数のメソッドです.ユーザーの資格情報が有効であることを証明する場合、承認プロセスを実装できます.認証プロセスは常に認証プロセスに進む.

認可


権限は、アプリケーションの特定の機能およびリソースにアクセスするためのユーザー許可を与える行為です.ユーザーが認証に成功した後、認証はシステムにアクセスし、どの程度までの能力を決定します.使用する方法の多くは、それがあなたのウェブサイトやアプリケーションだけで、またはユーザーの連絡先やカレンダーのようなものにアクセスする機能を有効にするようにGoogleやFacebookのようなサードパーティを使用していることを確認することができます多くの方法があります.

私の最近のアプリケーションでは、Googleを使用して認証し、ユーザーを承認します.これは、ユーザーがGoogleにリダイレクトされているスーパー一般的な練習です、Googleは、ユーザーは、彼らが言っている人であることを確認し、それらの種類のauthコードを与える.ユーザーは認証されるAuthコードを使用してアプリケーションに戻り、AuthコードをGoogleからのアクセストークンに交換できます.これは順番にカレンダーや連絡先のようなユーザー情報へのアプリケーションアクセスを許可することができます.あなたは簡単にGoogleのdevコンソールでプロジェクトを登録することによって、あなたのアプリケーションのAuth用のGoogleを使用することができますし、順番に、それらの既存のGoogleアカウントを使用してユーザーを認証する必要があります.これは順番にOAuth 2.0を実装することができます.それは、それがユーザー認可に来るとき、一見標準になっています.
  //function to sign in with google auth
  const googleSignIn = async () => {
    try {
      const { type, user, accessToken } = await Google.logInAsync({
        iosClientId: IOS_AUTH_KEY,
        androidClioentId: ANDROID_AUTH_KEY,
        scopes: ["profile", "email"]
      })
      if (type === "success") {
        //key values to add to the userInfo global state
        axios.get(`${AXIOS_URL}/users/${user.email}`)
          .then(res => setUserInfo(userInfo => ({
            ...userInfo,
            signedIn: true,
            username: user.username,
            email: user.email,
            photoUrl: res.data.photo,
            id: res.data.id
          })))
          .catch(error => console.log('failed to find user', error));
      }
    } catch (error) {
      console.log(error)
    }
  }
機能はどのように私は自分の反応ネイティブアプリでユーザーを認証するためにエキスポとGoogleを使用しています.あなたが自分自身をモバイルアプリケーションを構築見つける場合は、私は非常に反応ネイティブで万博をチェックアウトすることをお勧めします.彼らは多くのAUTHプロセスを合理化することができますAPIのトンが組み込まれている.上記のコードからわかるように、エキスポからの助けを借りて、1つの比較的簡単な機能で認証と認証をすることができました.Googleで私のアプリを登録した後、私はAndroidとIOSのユーザーのためのAuthキーを与えられた.一旦ユーザーが認証されると、Googleはそれから我々が即座に保存することができて、我々のアプリケーションで使用するユーザープロフィールと電子メールアドレスへのアクセストークン格子接近を返します.このような合理化されたAuthは実装するのが簡単であるだけでなく、非常により簡単なユーザー経験のためにもします.
認証は、システムへのアクセスを許可することを意味します.認証はあなたが誰であるかを確かめる過程です、認可はあなたがアクセスしているものを確認するプロセスです.うまくいけば、これは2つの違いを理解するのに役立ちますが、また、なぜ彼らは重要であり、通常一緒に話されている.